gpt4 book ai didi

python - 如何使用 os.walk 访问特定文件夹中特定文件的信息

转载 作者:太空宇宙 更新时间:2023-11-03 18:36:45 25 4
gpt4 key购买 nike

这个问题扩展了我之前的问题,我的代码还有另一个问题。我尝试在上一个问题的编辑版本中发布这个问题,但没有引起注意。所以我再说一遍:

添加的问题:

我得到了第一个问题的答案,现在我有了另一个问题。根目录下有很多子目录。我只想访问所有目录中同名的一个子目录中的信息。这是我尝试过的:

for root, dirs, files in os.walk("/rootPath/"):
for dname in dirs:
#print dname, type(dname)
allPIs = []
allDirs = []
if dname.endswith('code_output'): #I only want to access information from one file in sub-directories with this name
ofh = open("sumPIs.txt", 'w')
ofh.write("path\tPIs_mean\n")
for fname in files: #Here i want to be in the code_output sub-directory
print fname #here I only want to see files in the sub-directory with the 'code_output' end of a name, but I get all files in the directory AND sub-directory
if fname.endswith('sumAll.txt'):
PIs = []
with open(os.path.join(root,fname), 'r') as fh_in:
for line in fh_in:
line = line.rstrip()
line = line.split('\t')
PIs.append(int(line[2]))
PIs_mean = numpy.mean(PIs)
allPIs.append(PIs_mean)
allDirs.append(filePath)

为什么这个循环遍历目录中的所有文件,而不仅仅是名称以“code_output”结尾的子目录?

最佳答案

我不能 100% 确定我明白你的问题。我假设您想要对每个 code_output 子目录中以字符串 sumAll.txt 结尾的所有文件进行操作。

如果是这种情况,那么您可以简单地摆脱第二个 for 循环:

for root, dirs, files in os.walk("/rootPath/"):
if root.endswith('code_output'):
allPIs = []
allDirs = []
# Create sumPIs.txt in /rootPath/.../code_output
ofh = open("sumPIs.txt", 'w')
ofh.write("path\tPIs_mean\n")
# Iterate over all files in /rootPath/.../code_output
for fname in files:
print fname
if fname.endswith('sumAll.txt'):
PIs = []
with open(os.path.join(root, fname), 'r') as fh_in:
for line in fh_in:
line = line.rstrip()
line = line.split('\t')
PIs.append(int(line[2]))
PIs_mean = numpy.mean(PIs)
allPIs.append(PIs_mean)
allDirs.append(filePath)

关于python - 如何使用 os.walk 访问特定文件夹中特定文件的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21436674/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com