为了账号安全,请及时绑定邮箱和手机立即绑定

遍历文件夹中的所有 .csv 文件

遍历文件夹中的所有 .csv 文件

翻过高山走不出你 2022-10-25 10:35:58
我无法扩展我的代码以在 .csv 文件夹上使用,而不是仅在一个文件上使用。我编写了代码来读取和操作以以下代码开头的单个文件,并将数据放入 3 个列表中:with open('Filename_raw.csv', 'r') as read_obj:    csv_reader = reader(read_obj)    list1 = []    list2 = []    list3 = []    for row in csv_reader:        if len(row) == 3:        list1.append(row)        if len(row) == 16:        list2.append(row)        if len(row) == 21:        list3.append(row)    ...    ...    ...由于其结构,我不得不逐行遍历每个 csv(一个 csv 中有 3 个不同的表)我有一个C:\Users\xxxx\xxxxxx\xxxxxx\xxxxxxxx.csvs 所在的文件路径,所以我希望获得一些关于如何遍历文件夹中所有文件而不是一个文件的指导。文件名的结构相似并且总是以“_raw.csv”结尾任何帮助将不胜感激 - 谢谢!
查看完整描述

1 回答

?
月关宝盒

TA贡献1772条经验 获得超5个赞

以下代码应该可以工作。我还更新了代码,而不是使用三个 if 条件,您可以使用if - elif. 否则代码将检查三个条件,即使第一个条件满足,这是不必要的。


import os


directory = os.path.join("c:\\","path")

for root,dirs,files in os.walk(directory):

    for file in files:

       if file.endswith("_raw.csv"):

          with open(file, 'r') as read_obj:

          csv_reader = reader(read_obj)

          list1 = []

          list2 = []

          list3 = []

          for row in csv_reader:

             if len(row) == 3:

                list1.append(row)

             elif len(row) == 16:

                list2.append(row)

             elif len(row) == 21:

                list3.append(row)


查看完整回答
反对 回复 2022-10-25
  • 1 回答
  • 0 关注
  • 222 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号