在python中删除文件中每行开头和结尾的空格

2024-09-25 12:31:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从文件中读取一些数字,并将它们存储到名为numbers的数组中。 我对每一行使用strip()来删除每一行末尾的\n。我还对每一行使用split(' ')来删除数字之间的空格。

问题是在输入文件中,行上的第一个字符和行上的最后一个字符是空格。我怎样才能抹去它们?

这是我的代码:

def read_from_file():
    f = open('input_file.txt')
    numbers = []
    for eachLine in f:
        line = eachLine.strip()
        for x in eachLine.split(' '):
            line2 = int(x)
            numbers.append(line2)
    f.close()
    print numbers

这是文本文件,其中下划线是空格:

_9 5_
_2 3 1 5 4_
_2 1 5_
_1 1_
_2 1 2_
_2 2 3_
_2 3 4_
_3 3 4 5_
_2 4 5_
_2 1 5_
_3 1 2 5_

Tags: 文件infor数字数组字符filesplit
2条回答

strip()已从两端删除空格。错误在以下行中:

for x in eachLine.split(' '):

你应该在for中使用line,而不是eachLine

为了避免此类问题,您可以完全避免使用中间变量:

for line in f:
    for x in line.strip().split():
        # do stuff

注意,不带参数的调用split()会在任何空白序列上进行拆分,这通常是您想要的。见:

>>> 'a  b c d'.split()
['a', 'b', 'c', 'd']
>>> 'a  b c d'.split(' ')
['a', '', 'b', 'c', 'd']

注意最后一个结果的空字符串。split(' ')在每个单个空白上拆分。

with open("myfile.txt") as lines:
    for line in lines:
        print line.strip()

使用^{}删除前导空格和尾随空格

相关问题 更多 >