Python 如何将以下函数应用于多个txt文件?

Python 如何将以下函数应用于多个txt文件?,python,python-3.x,Python,Python 3.x,您好,我在一个目录中有几个txt文件,我想对我的所有txt文件应用以下python函数: file = open('folder/testing.txt', 'r',encoding='utf-8') list_lines = [] for line in file: list_lines.append(line.replace('-\n', ' ')) list_lines2 = [] for line in list_lines: list_lines2.a

您好,我在一个目录中有几个txt文件,我想对我的所有txt文件应用以下python函数:

file = open('folder/testing.txt', 'r',encoding='utf-8') 
list_lines = []   
for line in file: 
    list_lines.append(line.replace('-\n', ' '))
list_lines2 = []    
for line in list_lines:
    list_lines2.append(line.replace('-\n', ''))
list_lines3 = []
for line in list_lines2:
    list_lines3.append(line.replace('\n', ''))
big_line = ''.join(list_lines3)
text_file=`open("folder/Output.txt", "w")`
print(big_line)
text_file.write(big_line)
text_file.close()
print('writing document')
为了实现这一点,我尝试制作一个函数:

def change(document,encoding):
    file = open(document, 'r',encoding=encoding) 
    list_lines = []   
    for line in file: 
        #print(line.replace('\n', ' ').replace('\r', ''))
        list_lines.append(line.replace('-\n', ' '))
    list_lines2 = []    
    for line in list_lines:
        list_lines2.append(line.replace('-\n', ''))
    list_lines3 = []
    for line in list_lines2:
        list_lines3.append(line.replace('\n', ''))
    big_line = ''.join(list_lines3)
    text_file = open(document+'changed', "w")
    print(big_line)
    text_file.write(big_line)
    text_file.close()
    print('writing document')    
事实上,我的函数运行得很好,但我有一个如下目录:

folder$ ls

file1.txt file2.txt file3.txt ... fileN.txt

因此,我希望得到支持,能够找到一种方法将我的函数应用于目录中所有以txt扩展名结尾的文档,感谢您的支持

将您的
更改
函数应用于当前目录中以“.txt”结尾的每个文件非常容易:

虽然这不是问题所在,但我在看这段代码时,不能不建议使用较短版本的
change

def change(document,encoding):
    with open(document, 'r',encoding=encoding) as file:
        list_lines = [line.replace('-\n', ' ').replace('\n', '') for line in file]   
    big_line = ''.join(list_lines)
    print(big_line)
    with open(document+'changed', "w") as text_file:
        text_file.write(big_line)
    print('writing document')    

对于os.listdir()中的文件名:更改(文件名,编码)
?请发布完整答案我是一个使用os的乞丐,我想这就是我要寻找的,可能是
def change(document,encoding):
    with open(document, 'r',encoding=encoding) as file:
        list_lines = [line.replace('-\n', ' ').replace('\n', '') for line in file]   
    big_line = ''.join(list_lines)
    print(big_line)
    with open(document+'changed', "w") as text_file:
        text_file.write(big_line)
    print('writing document')