Python os.walk,处理子目录中的文件
Python os.walk, working with files in subdirectories
学习 Python 作为我论文的一部分,我完全是自我 taught/don 不知道自己在做什么;如果这是微不足道的,我们深表歉意。
在网上搜索了一段时间,找不到 "plain english" 的答案,我也不知道如何自己做。我通过潜伏从这个网站收集了很多关于知识的花絮,所以我希望你能提供帮助。
我有一个文件夹,其中包含以年份(2001、2002、2003 等)命名的文件夹,每个文件夹内都有一个用于每个月的编号文件夹(01、02、03 等)。其中每一个都是我正在使用的 csv 文件。我已经设置了一个程序来加载它们并分析它们,但它只在不涉及子目录时才有效。否则它告诉我该文件不存在。只是试图让 python 查看这些子目录中的 csv 文件并通过程序 运行 它们。
例如,这很好用:
top = r'C:\Users\Brock\Desktop\Masters_Python&Data\WRF_data\ctl06'
os.chdir(top) #change current directory to 'top' object
for root,dirs,files in os.walk(top, topdown = True):
for file in files:
#blah blah program goes here
然而,当我尝试 运行 时:
top = r'C:\Users\Brock\Desktop\Masters_Python&Data\WRF_data\ctl'
os.chdir(top)
for root,dirs,files in os.walk(top, topdown = True):
for file in files:
#blah blah program goes here
它告诉我第一个文件夹(01)中的第一个文件不存在。还在 "File":
之后随机抛出一个 "b"
FileNotFoundError: File b'1136072700_KSUN_wrf6x6.csv' does not exist
如果 top 也类似于 "r'C:\Users\Brock\Desktop\Masters_Python&Data\WRF_data\ctl06',就会发生这种情况。
再次,如果这是一个愚蠢的问题,我深表歉意,但我宁愿问知道的人,也不愿我摆弄一个星期才能找到答案。
干杯
您需要使用glob
:
import glob
import csv
path = r'C:\Users\Brock\Desktop\Masters_Python&Data\WRF_data\ctl\*\*\*.csv'
for file in glob.iglob(path):
with open(file) as f:
reader = csv.reader(f, delimiter=',')
for row in reader:
do_something_with(row)
学习 Python 作为我论文的一部分,我完全是自我 taught/don 不知道自己在做什么;如果这是微不足道的,我们深表歉意。 在网上搜索了一段时间,找不到 "plain english" 的答案,我也不知道如何自己做。我通过潜伏从这个网站收集了很多关于知识的花絮,所以我希望你能提供帮助。
我有一个文件夹,其中包含以年份(2001、2002、2003 等)命名的文件夹,每个文件夹内都有一个用于每个月的编号文件夹(01、02、03 等)。其中每一个都是我正在使用的 csv 文件。我已经设置了一个程序来加载它们并分析它们,但它只在不涉及子目录时才有效。否则它告诉我该文件不存在。只是试图让 python 查看这些子目录中的 csv 文件并通过程序 运行 它们。
例如,这很好用:
top = r'C:\Users\Brock\Desktop\Masters_Python&Data\WRF_data\ctl06'
os.chdir(top) #change current directory to 'top' object
for root,dirs,files in os.walk(top, topdown = True):
for file in files:
#blah blah program goes here
然而,当我尝试 运行 时:
top = r'C:\Users\Brock\Desktop\Masters_Python&Data\WRF_data\ctl'
os.chdir(top)
for root,dirs,files in os.walk(top, topdown = True):
for file in files:
#blah blah program goes here
它告诉我第一个文件夹(01)中的第一个文件不存在。还在 "File":
之后随机抛出一个 "b"FileNotFoundError: File b'1136072700_KSUN_wrf6x6.csv' does not exist
如果 top 也类似于 "r'C:\Users\Brock\Desktop\Masters_Python&Data\WRF_data\ctl06',就会发生这种情况。
再次,如果这是一个愚蠢的问题,我深表歉意,但我宁愿问知道的人,也不愿我摆弄一个星期才能找到答案。
干杯
您需要使用glob
:
import glob
import csv
path = r'C:\Users\Brock\Desktop\Masters_Python&Data\WRF_data\ctl\*\*\*.csv'
for file in glob.iglob(path):
with open(file) as f:
reader = csv.reader(f, delimiter=',')
for row in reader:
do_something_with(row)