删除数字末尾的点

时间:2013-04-19 17:58:04

标签: python

我有一个如下所示的txt文件:

  1,           0.,           0.,           0.
  2,           0.,           0.,         600.
  3,           0.,           0.,        2600.
  4,           0.,           0.,          50.

我想阅读它并创建以下列表:

['1', '0', '0', '0']
['2', '0', '0', '600']
['3', '0', '0', '2600']
['4', '0', '0', '50']

但是我只能获得:

['1', '0.', '0.', '0.']
['2', '0.', '0.', '600.']
['3', '0.', '0.', '2600.']
['4', '0.', '0.', '50.']

我的代码如下:

for line in inputFile:
    fileData.append([x.strip() for x in line.split(',')])

编辑: 如何将我的字符串列表转换为整数列表?尝试使用我上面编写的代码行进行一些修改但无法实现。

3 个答案:

答案 0 :(得分:8)

"." + string.whitespace传递给strip,以便删除空格和句点:

from string import whitespace
for line in inputFile:
    fileData.append([int(x.strip("." + whitespace)) for x in line.split(',')])

答案 1 :(得分:4)

for line in inputFile:
    fileData.append([int(x.strip().rstrip('.')) for x in line.split(',')])

而不是x.strip().rstrip('.'),您可以使用x.strip(' \t\r\n.'),但我认为让x.strip()处理所有空格更为清晰。

答案 2 :(得分:1)

with open('filename') as f:
    file_data = [[int(float(i)) for i in line.split(',')] for line in f]