如何从文本文件中提取数值数据

时间:2015-09-16 17:34:55

标签: python

我在文本文件的单个列中有一个数据,如下所示:

2305 \ n1961 \ n2224 \ n1223 \ n。当我读取这些数据时,它会将data_type更改为string。

data = open('C:\file.txt','r')
lines = data.readlines()
new_data = []
for i in range(len(lines)):
new_data.append(lines[i].strip())
print new_data

这会产生[' 2305',' 1961',' 2224',' 1223'] 但我想要上面的输出没有分隔符" ' "

我尝试了这个但是没有工作

no_list = []
for list in new_data:
    no_list.append(int(list))
print no_list

和以前的结果相同。我可以用int格式得到数值数据。

2 个答案:

答案 0 :(得分:1)

只需输入UTF-8字符串类型并使用内置的int()函数。 我已对下面的代码进行了必要的更改。我也做了这样的事情,你只会迭代一次行列表,并简化程序的流程,以便更容易理解。

lines = open('C:\file.txt','r').readlines()
new_data = []
for line in lines:
    new_data.append(int(line.strip()))
print new_data

享受并祝你好运。

答案 1 :(得分:1)

有许多方法可以将列表从string转换为int类型。然而,我要注意的第一件事是:如果你不必,不要在列表上重复两次。当您进行迭代时,请读取数据,将其转换为类型,然后附加:

for line in data.readlines():
    new_data.append(int(line.strip()))

可以使用列表推导或map调用来缩短这一点:

new_data = map(int, data.readlines())
new_data = [int(line) for line in data.readlines()]

如果必须迭代两次,可以使用列表推导或map进行转换:

no_data = [int(num) for num in new_data]
# or
no_data = map(int, new_data)