因此,我尝试创建一个函数来打开一个文本文件,逐行读取它,然后获取从中提取的数据来创建一个列表。
def file_open():
filename = str(input("enter file name for perk.py to sort through"))
fob = open(str(filename), 'r')
theList = []
for line in fob:
if not line:
break
x = fob.readline()
x = int(x)
theList.append(x)
print("List =", theList)
return theList
这是我从中提取数据的文本文件:
9
7
1
3
2
5
4
我的预期输出应该是:
List =[9,7,1,3,2,5,4]
但是,当我运行此函数时,出现以下错误:
Traceback (most recent call last):
File "H:/CSCI-141/Week 7 Work/perk.py", line 47, in <module>
main()
File "H:/CSCI-141/Week 7 Work/perk.py", line 44, in main
perk_sort(file_open())
File "H:/CSCI-141/Week 7 Work/perk.py", line 17, in file_open
x = int(x)
ValueError: invalid literal for int() with base 10: ''
如果有人能告诉我为什么会出现此错误以及如何修复我的代码,我将非常感激,谢谢!
您可能尝试在空行上应用 int() 。
您可以使用 file.readlines() 获取所有行,然后轻松地迭代它们。
尝试这个:
def file_open():
filename = "PATH TO YOUR FILE"
fob = open(filename, 'r')
lines = fob.readlines()
final_list = []
for line in lines:
final_list.append(int(line))
print "List: %s" % final_list
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)