【发布时间】:2019-12-10 20:00:30
【问题描述】:
我一直在尝试从另一个 CSV 的大列表中创建一个 CSV,这是交易:我想获取这些 CSV 文件的名称并将它们放入我想要创建的 CSV 中,另外,我还需要我获得名称的 CSV 文件中的行数,这是我迄今为止尝试过的:
def getRegisters(file):
results = pd.read_csv(file, header = None, error_bad_lines= False, sep = '\t', low_memory = False)
print(len(results))
return len(results)
path = "C:/Users/gdldieca/Desktop/TESTSFORPANW/New folder"
dirs = os.listdir(path)
with open("C:/Users/gdldieca/Desktop/TESTSFORPANW/New folder/FilesNames.csv", 'w', newline='') as f:
writer = csv.writer(f, delimiter = '\t')
writer.writerow(("File", "Rows"))
for names in dirs:
sfile = getRegisters("C:/Users/gdldieca/Desktop/TESTSFORPANW/New folder/" + str(names))
writer.writerow((names, sfile))
但是,即使 Pandas 实际返回文件,我似乎也无法获得文件行数。我收到此错误:
_csv.Error: iterable expected, not int
最终结果将是这样的写入 CSV
File1 90
File2 10
【问题讨论】:
-
总是将完整的错误消息(从单词“Traceback”开始)作为文本(不是屏幕截图)放在有问题的(不是评论)中。还有其他有用的信息。
-
names是一个字符串,因此您不必使用str()。您可以使用path + '/' + names创建路径。或者更好os.path.join(path, names)