我有一个数据文件(.txt
),其中包含一些行,每一行如下:
0 45 1 31 2 54 3 54 4 64
零前有一个空格,两个整数之间有两个空格,末尾有一个空格。我想要的是这样的:
0 45 1 31 2 54 3 54 4 64
我正在尝试一切(使用Python),但是我没有成功!
当然,最后我想将其修改为:
45 31 54 54 64
这也消除了数字0到4。但是,如果我到达第一个步骤,则最后一步可能会更容易。
例如,我已经尝试过:
with open('myfile', rt') as openfile, open('myfile_2, 'a') as csvfile:
for line in openfile:
A = str(line).replace(' ', ' ')
Writer = csv.writer(csvfile, delimiter=' ', quotechar=' ')
Writer.writerow([A])
但是在“ myfile_2”中,该字符串未得到纠正。
答案 0 :(得分:0)
做出相应更改:
with open('newtes.txt', 'w') as outfile, open('tes.txt', 'r') as infile:
for line in infile:
outfile.write(line.replace(' ',' ').strip())
编辑1:按注释中的建议添加strip()
编辑2:进行更改。
答案 1 :(得分:0)
您可以改用re
:
import re
# Handles multiple whitespaces
WHITE_SPACE_PATTERN = re.compile(r' +')
# or
# WHITE_SPACE_PATTERN = re.compile(r'\s+')
# if you want to handle newlines as well
sample_string = "0 45 1 31 2 54 3 54 4 64"
cleaned_string = re.sub(WHITE_SPACE_PATTERN, ' ', sample_string.strip())
答案 2 :(得分:0)
您可以使用regular expression来匹配一个或多个空格(' +'
,其中+
表示“一个或多个”)并将它们替换为一个空格:
import re
line = ''
file_object = open("test.txt", "r+")
for line in file_object:
line=line
print re.sub(' +', ' ',line.lstrip())