如何将整个表格从文本转换为整数
我有一个文本文件,我是这样读取的:
fdata =[]
with open(fn,'rb') as fo:
for i in xrange(1):
fo.next()
for line in fo:
data = line.split(',')
data = data[:23]
fdata.append(data)
print fdata
我想把整个表格里的内容从字符串转换成数字。同时,我还想限制读取的表格大小,只读取XXX行。
2 个回答
2
在编程中,我们经常会遇到一些问题,尤其是在使用特定的工具或库时。比如,有时候我们在运行代码时,可能会发现它没有按照预期的方式工作。这种情况可能是因为我们没有正确地使用这些工具,或者是因为我们对它们的理解不够深入。
当我们在StackOverflow上提问时,通常会有很多热心的开发者来帮助我们。他们会根据自己的经验,给出一些建议和解决方案。这些建议可能包括检查代码中的某些部分,或者尝试使用不同的方法来解决问题。
总之,编程就像是一场不断学习和解决问题的旅程。遇到困难时,不要气馁,寻求帮助是很正常的。通过不断实践和交流,我们会逐渐掌握更多的知识和技能。
from itertool import islice
fdata =[]
with open(fn,'rb') as fo:
for i in xrange(1):
fo.next()
for line in islice(fo,0,XXX):
data = line.split(',')
data = data[:23]
fdata.append(map(int,data))
print fdata
2
要限制行数,可以用一个计数器来循环,并使用 readlines()
方法:
maxlines = 100
lines = f.readlines()
if maxlines > len(lines): maxlines = len(lines)
for i in xrange(maxlines):
line = lines[i]
# Do your stuff...
如果你想把字符串转换成数字(这里是整数,float()
是用来处理小数的):
print '9000' == 9000 # False.
print int('9000') == 9000 # True
所以为了让你的表格只包含整数,需要把每一行(分割后)转换成整数。int()
这个函数只会 返回 一个整数,它不会改变你的变量。把 fdata.append(data)
替换成 fdata.append(int(data))
就可以了。
好的,要把你整个列表转换成整数,只需遍历这23个元素,把它们都转换成整数。这种方法适用于任意的字符串列表:
for element in data:
element = int(element)
如果你想把列表转换成整数,但不包括第一个元素,可以这样循环遍历:
for i in xrange(1, len(data)): # I used 1 because 0 is the first element. This skips it.
data[i] = int(data[i])