【发布时间】:2016-06-06 12:42:11
【问题描述】:
我有下面的代码,它首先尝试查找 PDF 文件。如果它甚至没有成功找到一个 PDF 文件,那么它会继续搜索例如.TIF 文件在同一文件夹中。
但是,我有两个问题。首先,当它在文件夹中找到 PDF 文件时,它还会打印 .txt 文件中的所有 .TIF 文件。但是当它没有找到 PDF 文件时,它会停止(即使没有 break)并且不会生成 .txt 文件。我很困惑,不胜感激。
b = os.walk('C:\\Users\\USER\\Desktop\\FOLDER')
os.listdir('C:\\Users\\USER\\Desktop\\FOLDER')
f = []
for(dirpath, dirnames, filenames) in b:
if f.extend(os.path.splitext(name)[0] for name in filenames if name.lower().endswith((".pdf"))) == []:
pass
break
elif f.extend(os.path.splitext(name)[0] for name in filenames if name.lower().endswith((".tif"))) == []:
pass
def save_to_file(text):
for name in f:
with open('C:\\Users\\USER\\Desktop\\FOLDER\\test.txt', mode='wt', encoding='utf-8') as myfile:
myfile.write('\n'.join(text))
myfile.write('\n')
save_to_file(f)
【问题讨论】:
-
f.extend总是返回None,所以它在if子句中没有任何业务。 -
但如果我只使用 name.lower().endswith(..) 那么它也不起作用
标签: python file operating-system