我想读取一个文件并删除空格。我发誓我已经做过很多次了,但出于某种原因,我过去使用的方法没有;似乎不起作用。我一定在某个地方犯了一些小错误,所以我决定制作一个小的练习文件(因为我实际需要使用的文件非常大(来找出答案。
原始文件上写着:
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(' ', '')
如果您的文件具有tab
newline
或其他形式的空间,则上述操作将不起作用,您需要使用regex
删除文件中的所有形式的空间。
import re
string = '''this is a n
test ttt
r
v
'''
re.sub(r's', '', string)
#'thisisatest'