Python 循环浏览文件夹中的所有.csv文件
我无法将代码扩展到.csv文件夹,而不是一个文件。我编写了读取和操作单个文件的代码,该文件以以下代码开头,并将数据放入3个列表中:Python 循环浏览文件夹中的所有.csv文件,python,csv,Python,Csv,我无法将代码扩展到.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:
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个不同的表),我不得不逐行浏览每个csv
我有一个文件路径C:\Users\xxxxx\xxxxxx\xxxxxx\xxxxxxxx
,它是.csv所在的位置,因此我希望获得一些指导,指导如何循环遍历文件夹中的所有文件,而不是一个文件
文件名的结构类似,总是以“_raw.csv”结尾
任何帮助都将不胜感激-谢谢 以下代码应该可以工作。我还更新了代码,因为您可以使用
if-elif
,而不是使用三个if条件。否则,代码将检查这三个条件,即使第一个条件满足,这是不必要的
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)
这回答了你的问题吗?查看
os.walk()
或更简单的glob.iglob()
Thank heaps!。最后我使用了glob
函数,它起作用了!