我有一个包含在目录中的.txt文件列表。每个文件可能有多行。可能是Python脚本从该目录中包含的所有文件中删除所有换行符?生成的文件应该只有一行包含所有文本。
import os
os.chdir("/home/Pavyel/Desktop/Python Programs")
for i in os.listdir(os.getcwd()):
if i.endswith(".txt") :
f = open(i)
contents = f.read()
new_contents = contents.replace('\n', '')
print i
continue
else:
continue
答案 0 :(得分:0)
使用glob.glob()
查找感兴趣的文件,即以.txt
结尾的文件。 glob()
返回匹配文件名列表,并保留路径不变,因此您无需更改目录。
使用fileinput.input()
处理文件:
import fileinput
from glob import glob
pattern = '/home/Pavyel/Desktop/Python Programs/*.txt'
files = glob(pattern)
if files:
with fileinput.input(files, inplace=True) as f:
for line in f:
print(line.rstrip('\n'), end='')
如果您使用的是Python 2,则可能值得将mode='U'
传递给fileinput.input()
以确保启用通用换行处理,这是Python 3的默认处理。启用后,您可以确定无论代码运行的平台如何,\n
都会匹配换行符。
答案 1 :(得分:-1)
import os
import sys
import fileinput
dir = "." #Directory to scan for files
file_list = os.listdir(dir)
for file in file_list:
if file.endswith(".txt"):
with fileinput.FileInput(file, inplace=True, backup=".bak") as f:
for line in f:
sys.stdout.write(line.replace("\n", ""))
这也将创建它编辑的所有文件的备份,以防万一
如果您不希望备份从第7位删除, backup=".bak"
。