如何将整个表格从文本转换为整数

0 投票
2 回答
5476 浏览
提问于 2025-04-16 11:22

我有一个文本文件,我是这样读取的:

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])

撰写回答