迭代文本文件中的数字



我有一个.txt文件,其中1,000个数字仅由','分隔。当我在python中打开文件时,它将其作为一个大字符串读取,因此只有一行。我需要找到一种方法将逗号之间的每一个数字转换成一个int,这样我就可以遍历它们。这是我到目前为止的代码:

with open('HW5.txt') as f:
data = f.read()
print(type(data))
newdata = data.replace(',',' ')
data_seperate = newdata.replace(' ', 'n')
print(data_seperate)
print(len(data_seperate))
f.close()

它在新的一行上打印出每个数字,但这些数字仍然是字符串,python将每个单独的数字作为一个字符计算,而不是将每个数字作为一个整数。我该如何处理呢?我刚开始使用。txt文件,所以这些属性让我很困惑。尝试转换print(int(data_seperate))返回此错误:

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

Withmap:

with open("HW5.txt") as f:
data = [*map(int, f.read().split(","))]
>>> data
[798, 441, 687, 780, 103, 405, 363, 66, 481, 171, 549, 449, 135, 229,
689, 248, 374, 697, 502, 209, 699, 684, 377, 235, 819, 471, 189, 43,
696, 999, 769, 501, 148, 474, 733, 729, 427, 710, 911, 207, 25, 785,
855, 550, 481, 735, 832, 791, 970, 225, 559, 182, 922, 717, 723, 113,
260, 166, 294, 97, 3, 323, 835, 18, 653, 876, 264]

这是使用str.splitmap的一种方法。请注意,我在这里使用rstrip(),以防文件中有尾随换行符,就像我们在这里所做的那样。

sample_file_contents = """
1,2,3,4,5,6,7,8,9
"""
num_list = sample_file_contents.rstrip().split(',')
numbers = list(map(int, num_list))
print(numbers)

输出:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

相关内容

  • 没有找到相关文章

最新更新