我有一个文本文件,它的结构如下
1\t 13249\n
2\t 3249\n
3\t 43254\n
etc...
这是一个非常简单的列表。我已经打开了文件,我可以读行了。我有以下代码:
count = 0
for x in open(filename):
count += 1
return count
我想要做的是将每行的第一个数字分配给一个变量(比如xi
),并将每行的第二个数字分配给另一个变量(yi
)。目标是能够对这些数字运行一些统计数据。
在此之前,非常感谢您。
发布于 2011-08-31 13:31:24
不需要重新发明轮子..
import numpy as np
for xi, yi in np.loadtxt('blah.txt'):
print(xi)
print(yi)
发布于 2011-08-31 13:21:51
count = 0
for x in open(filename):
# strip removes all whitespace on the right (so the newline in this case)
# split will break a string in two based on the passed parameter
xi, yi = x.rstrip().split("\t") # multiple values can be assigned at once
count += 1
return count
发布于 2011-08-31 15:01:15
>>> with open('blah.txt') as f:
... for i,xi,yi in ([i]+map(int,p.split()) for i,p in enumerate(f)):
... print i,xi,yi
...
0 1 13249
1 2 3249
2 3 43254
注意int(‘23\n') = 23
这一点更清楚:请注意,enumerate提供了一个生成器,其中包含一个计数器。
>>> with open('blah.txt') as f:
... for count,p in enumerate(f):
... xi,yi=map(int,p.split()) #you could prefer (int(i) for i in p.split())
... print count,xi,yi
...
0 1 13249
1 2 3249
2 3 43254
https://stackoverflow.com/questions/7252831
复制相似问题