Python脚本从包含在目录中的.txt文件中去除新行
我有一个包含在目录中的.txt文件列表。每个文件可能有多行。 Python脚本可能会剥离该目录中包含的所有文件的所有换行符?结果文件应该只有一行包含所有文本。Python脚本从包含在目录中的.txt文件中去除新行
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
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"
。
问题这一行:打印(line.replace( “\ n”,“”),end =“”) – Pavyel
@Pavyel **您正在运行Python的不兼容版本。最有可能的是Python 2,因为它不支持新的打印功能。该脚本在我的电脑上工作得很好。无论如何,我已经更改了代码,因此可以与更多的Python版本一起使用。 – Janekmuric
使用glob.glob()
找到感兴趣的文件,即那些以.txt
结尾的文件。3210返回匹配文件名的列表,并且保持路径不变,因此您不需要更改目录。
过程与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
将匹配换行符。
可能有很多脚本......你有没有试过写一个呢? – mhawke
进口OS os.chdir( “/家/ iitp /桌面/ Python程序”) 因为我在os.listdir(os.getcwd()): 如果i.endswith( “TXT”): ˚F =开放(I) 内容= f.read() new_contents = contents.replace( '\ n', '') 打印我 继续 其他: 继续 – Pavyel