【发布时间】:2020-11-17 06:36:43
【问题描述】:
我有一个文件字典,其结构如下所示
+-- folder1
| +-- folder2
| +--A.py
| +--A.txt
| +-- folder3
| +--folder4
| +--B.py
| +--B.txt
| +-- C.py
| +-- C.txt
我想知道的是找到folder1中的所有.py文件,并写出其通过_连接的相对路径。例如,B.py 可以是 folder1_folder3_folder4_B.py。这就是我所做的。
import os
file_list = os.listdir(folder1)
for file in file_list:
if len(file.split('.')) ==1 and file.split('.')[-1]=='py': # C.py
print(folder1 + file)
elif len(file.split('.')) ==1 and file.split('.')[-1]!='py': # C.txt
pass
else:
file1_list = os.listdir(file):
for file1 in file1_list:
if len(file1.split('.')) ==1 and file1.split('.')[-1]=='py': # A.py
print(folder1 + file + file1)
elif len(file1.split('.')) ==1 and file1.split('.')[-1]!='py': # A.txt
pass
else:
file2_list = os.listdir(file1):
for file2 in file2_list:
if len(file2.split('.')) ==1 and file2.split('.')[-1]=='py': # B.py
print(folder1 + file + file1 + file2)
elif len(file2.split('.')) ==1 and file2.split('.')[-1]!='py': # B.txt
pass
else:
pass # Actually I dont know how to write
有两个缺点:
(1) 我不知道何时停止for 循环,尽管我可以获得folder1 的最大深度
(2)for循环有这么多重复操作,显然可以优化。
有人有好的答案吗?
【问题讨论】: