Python如何将txt文件中逗号分隔的数字转为int并实现遍历?
错误原因
你调用int(data_seperate)报错的核心原因是:data_seperate仍然是包含所有数字、换行符的单个长字符串,int()仅支持对单个符合数字格式的字符串做转换,无法直接处理包含多个数字、分隔符的混合字符串。
正确实现方案
你不需要把逗号替换为空格、换行,直接用字符串的split()方法按逗号切分,就能直接得到每个数字对应的独立字符串,再逐个转换为int类型即可,参考代码如下:
with open('HW5.txt') as f: data = f.read() # 按逗号切割长字符串,得到每个数字单独组成的字符串列表 num_str_list = data.split(',') # 逐个转换为int类型,strip()用于过滤可能存在的首尾空白字符,避免转换报错 int_nums = [int(num.strip()) for num in num_str_list] # 后续可以直接遍历整数列表处理 print(int_nums) # 验证元素类型 print(type(int_nums[0]))
补充说明
- 使用
with open()语法打开文件时,代码块执行结束后会自动关闭文件,你原有代码末尾的f.close()属于冗余代码,可以删除。 - 如果需要按行打印每个数字,直接遍历
int_nums逐个打印即可,不需要提前把分隔符替换为换行符。
内容的提问来源于stack exchange,提问作者gavmross
相关产品推荐
相关产品推荐

