如何用python在csv中编写文件名和行数?

2024-09-22 16:40:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试从另一个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))

然而,我似乎无法得到文件行计数,即使熊猫实际上返回它。我得到这个错误:

_csv.Error: iterable expected, not int

最终的结果将类似这样的内容写入CSV

File1 90
File2 10

Tags: 文件csv名称newnamesfolderusersresults
1条回答
网友
1楼 · 发布于 2024-09-22 16:40:13

如果您使用的是pandas,我想您也可以使用它来创建一个csv文件,其中包含您需要的所有值

import os
import pandas as pd

directory='D:\\MY\\PATH\\ALLCSVFILE\\'
#create a list for add all
rows_list = []

for filename in os.listdir(directory):
    if filename.endswith(".csv"):
         file=os.path.join(directory, filename)
         df=pd.read_csv(file)
         #Count rows
         rowcount=len(df.index)
         new_row = {'namefile':filename, 'count':rowcount}
         rows_list.append(new_row)

#pass list to dataframe
df1 = pd.DataFrame(rows_list)
print(df1)
df1.to_csv('test.csv', sep=',')

结果: enter image description here

相关问题 更多 >