[英]Python 3.6: Looping through files in os.listdir() and writing some of them to a text document
我正在尝试遍历一些文件并将 .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('file_test.txt', 'r+') as ft:
ft.write(file_name)
在循环之前只打开一次文件会更有效率。 最好将您的路径传递给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”文件, glob.glob
是你的朋友......
您需要以“追加”模式打开目标文件
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', 'a+') as ft:
ft.write(file_name)
只需将“a+”作为打开函数的第二个参数(其中“a”表示“追加”,“+”表示“如果不存在则创建”)。 我建议您在 write 函数中添加一个分隔符(如“\\n”)以获得更具可读性的结果
如果您在 Windows 上,则必须在指定目录路径时使用\\\\\\
。 并以追加模式写入文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.