Python3.6:在os.listdir()中循环文件并将其中一些文件写入文本文档
我正在尝试循环浏览一些文件,并将.txt文件名写入另一个.txt文件 找到并写入一个文件名后,代码段停止 我怎样才能让它写下其他人的名字Python3.6:在os.listdir()中循环文件并将其中一些文件写入文本文档,python,loops,file-manipulation,Python,Loops,File Manipulation,我正在尝试循环浏览一些文件,并将.txt文件名写入另一个.txt文件 找到并写入一个文件名后,代码段停止 我怎样才能让它写下其他人的名字 import os os.chdir('/users/user/desktop/directory/sub_directory') for f in os.listdir(): file_name, file_ext = os.path.splitext(f) if file_ext == '.txt': with open
import os
os.chdir('/users/user/desktop/directory/sub_directory')
for f in os.listdir():
file_name, file_ext = os.path.splitext(f)
if file_ext == '.txt':
with open('file_test.txt', 'r+') as ft:
ft.write(file_name)
您需要以“附加”模式打开目标文件 只需将“a+”作为打开函数的第二个参数(其中“a”表示“append”,而“+”表示“create if not exists”)。
我建议您在write函数中添加一个分隔符(如“\n”),以获得更可读的结果在循环之前只打开一次文件会更有效。与更改目录相比,最好将路径传递到
os.listdir()
:
import os
with open('file_test.txt', 'w') as ft:
for f in os.listdir('/users/user/desktop/directory/sub_directory'):
file_name, file_ext = os.path.splitext(f)
if file_ext == '.txt':
ft.write(file_name)
最后,如果您希望所有“.txt”文件都位于一个目录中 如果您在windows上,则在指定目录路径时必须使用
\\\\
。并以追加模式写入文件。
帮助链接:实际上,您应该在打开文件之前打开一次(打开文件不是免费的),也不应该更改目录,而是将路径传递到
listdir()
import os
with open('file_test.txt', 'w') as ft:
for f in os.listdir('/users/user/desktop/directory/sub_directory'):
file_name, file_ext = os.path.splitext(f)
if file_ext == '.txt':
ft.write(file_name)