繁体   English   中英

如何从多个文本文件中获取元组列表?

[英]How to get a list of tuples from several text files?

我想访问 46 个子目录中的 .txt 文件,并提取每个文件文本中 0 和 1 的数量。 到目前为止,我已经编写了以下代码:

from pathlib import Path

def count_0s(paths):
  for p in paths:
    list_zeros = []
    list_ones = []
    for line in p.read_text().splitlines():
      zeros = 0
      zeros += line.count('0')
      ones = 0
      ones += line.count('1')
    list_zeros.append(zeros)
    list_ones.append(ones)    
  return list_zeros, list_ones

path = "/content/drive/MyDrive/data/classes/"
paths = Path(path).glob("*/marked*.txt")
n_zeros=count_0s(paths)
n_zeros

我想以 2 个列表的形式返回 function(一个具有 0 的数量,另一个具有 1 的数量)以在 Pandas Z6A8064B5DF479450570553C47DZ5 中使用。 抱歉,如果问题重复。

您的 function 中有几个错误:

  • 您添加了一些不必要的方括号( splitlines()已经返回一个列表)
  • 您不会遍历字符,而是遍历行

这是一个更正的 function:

def count_0s(paths):
  zeros_list = []
  ones_list = []
  for p in paths:
    zeros = 0
    ones = 0
    for line in p.read_text().splitlines():
        for c in line:
            if c == '0':
                zeros += 1
            else:
                ones += 1
    zeros_list.append(zeros)
    ones_list.append(ones)
  return zeros_list, ones_list

请注意,这可能是计算 0 和 1 的一种非常低效的方法。例如,仅使用line.count('0')而不是 for 循环可以将速度提高 10 倍。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM