Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python3.6:在os.listdir()中循环文件并将其中一些文件写入文本文档_Python_Loops_File Manipulation - Fatal编程技术网

Python3.6:在os.listdir()中循环文件并将其中一些文件写入文本文档

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

我正在尝试循环浏览一些文件,并将.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)

您需要以“附加”模式打开目标文件

只需将“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)