如何从文件中删除空格以形成一条长行



我想读取一个文件并删除空格。我发誓我已经做过很多次了,但出于某种原因,我过去使用的方法没有;似乎不起作用。我一定在某个地方犯了一些小错误,所以我决定制作一个小的练习文件(因为我实际需要使用的文件非常大(来找出答案。

原始文件上写着:

abcdefg(新行(hijklmn

但我想说:abcdefghijklmn

file = open('please work.txt', 'r')
for line in file:
lines = line.strip()
print(lines)
close.file()

然而,它只是说:abcdefg(新行(hijklmn

当我使用line.strip('\n'(时,它会说:abcdefg(大新线(hijklmn

任何帮助都将不胜感激,因为这是我学到的第一件事,突然我不记得该怎么用了!

如果你想把每一行连接成一行,你可以使用rstrip并连接到一个结果变量:

with open('test.txt', 'r') as fin:
lines = ''
for line in fin:
stripped_line = line.rstrip()
lines += stripped_line
print(lines)

来自如下文本文件:

abcdefg hijklmnop
this is a line   

结果将是abcdefg hijklmnopthis is a line。如果你也想删除空白,你可以在循环后lines = lines.replace(' ',''),这将导致abcdefghijklmnopthisisaline

输出中的(新行(来自print,它将输出一个n。您可以使用print(lines, end='')来删除它。

strip()只删除前导&尾部空格。

可以使用string.replace(' ', '')删除所有空格。

'abcdefg (new line) hijklmn'.replace(' ', '')

如果您的文件具有tabnewline或其他形式的空间,则上述操作将不起作用,您需要使用regex删除文件中的所有形式的空间。

import re
string = '''this is a n
test ttt
r
v
'''
re.sub(r's', '', string)
#'thisisatest'

最新更新