从导入的文件python中删除空格

时间:2014-03-17 05:51:55

标签: python

所以我导入一个文件并使用该文件我抓住了数字,所以我可以把它放在一个列表中,但是白色空间不会消失这是我的代码到目前为止。他们还有其他问题,但到那时我会问你们。 感谢。

b = []
    opening = open("number.txt",'r')
for a in opening:
    b.append(a.strip())
 opening.close()
 print(b)

5 个答案:

答案 0 :(得分:0)

您只是按行分隔输入。你需要 进一步按字段分开:

b = []
for a in open("number.txt", 'r'):
    b += a.split()
print(b)

如果您希望b的内容为数字,而不是字符串,请使用此选项 for循环中的行:

    b += [int(x) for x in a.split()]
  • 埃里克

答案 1 :(得分:0)

  

我想让123变成1,2,3

在这种情况下,请使用re模块:

>>> import re
>>> s = '123'
>>> re.split(r'(\d)', s)[1::2]
['1', '2', '3']
>>> list(map(int, re.split(r'(\d)', s)[1::2]))
[1, 2, 3]

将此与@ thefourtheye的解决方案相结合。我会告诉你如何将它结合起来:)

答案 2 :(得分:0)

str.strip()仅从字符串的两边移除空格。修改你的代码,使其像这样 - 而分裂将有效地提取所有数字字符,因为它们不是空格。 str.split()默认使用空格作为分隔符:

with open('number.txt') as f:
    b = [int(n) for n in [a.split() for a in f.readlines()]]
print(b)

这应该有效。

答案 3 :(得分:0)

file = open(" number.txt"," r")

for line in file:

     x=line.split()
     print x

答案 4 :(得分:0)

您还没有告诉我们您的文件是如何格式化的。

csv module非常擅长处理大多数简单数据。然后,您可以在各个字段上调用strip。

import csv

with open("number.txt", "r") as f:
    reader = csv.DictReader(f, skipinitialspace=True)#see docs for configuration
    for row in reader:
        print row

由于我们在这里使用了DictReader,因此每个row都是一个字典(从第一行获取键)。如果你想为每一行添加一个元组,你可以使用vanilla csv.reader