如何将以下功能应用于几个txt文件?

时间:2018-02-06 22:45:25

标签: python python-3.x

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

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扩展结束,感谢支持

1 个答案:

答案 0 :(得分:1)

使用globchange函数应用于当前目录中以“.txt”结尾的每个文件都非常简单:

import glob

for file in glob.glob("*.txt"):
    change(file, "utf-8")

虽然这不是问题,但如果没有建议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')