将字符串从txt转换为int将导致

2024-04-20 07:14:03 发布

您现在位置:Python中文网/ 问答频道 /正文

尝试从文本文件中获取这些数字:

00000
11111
22222
33333
44444

尝试从文本文件中减去总字符串,使函数以整数的形式处理每一行:

import linecache

with file('textfiletest.txt', 'r') as original: testfile = str(original.read())
lines = len(testfile.splitlines())
for i in range(lines):
    SID = int(testfile[5*i: -(len(testfile)-5*(i+1))])
    print SID

这段代码的结果是打印所有行,最后一行出现错误,表示它不是可转换字符。你知道吗

 ValueError: invalid literal for int() with base 10: ''

注:每行5个字符。你知道吗


Tags: 函数字符串importforlenwith数字整数
1条回答
网友
1楼 · 发布于 2024-04-20 07:14:03

Python中的行读取比这简单得多,这里的事情确实过于复杂了:

with file('textfiletest.txt', 'r') as original:
    for line in original:
        if not line.strip():
            continue
        SID = int(line)
        print SID

这将直接一行一行地循环文件中的行。int()可以处理额外的空白,包括换行符,所以我们需要注意的是,确保跳过除空白之外的空白行。你知道吗

您的解决方案没有考虑换行符也会占用空间;换行符的长度为6个字符。但是既然你已经很清楚地找到了str.splitlines()函数,为什么还要让自己这么为难呢?你可以循环一下:

for line in testfile.splitlines():
    # ...

会给你一个循环文件内容中的行没有尾随换行,当然不需要复杂的切片计算。你知道吗

相关问题 更多 >