当我运行addItem()说:
时,我不知道为什么会收到错误消息SyntaxError: unexpected EOF while parsing
我已将所有文件读取和写入文件关闭,并且我正在使用raw_input
函数。我认为readfrom()函数出了问题,但我不知道到底是什么。
import ast
def writeTo():
itemx=",".join(map(str,itemx))
with open("ListItemz.txt","a") as filewrite:
filewrite.write(str(itemx)+"\n")
filewrite.close()
def readfrom():
fileread=open("ListItemz.txt","r")
fr=fileread.readlines()
fr=fr[len(fr)-1]
itemx=list(ast.literal_eval(fr))
fileread.close()
itemx=[]
def addItem():
global itemx
if itemx==[]:
itemx=[]
else:
"""
about to read file:
"""
readfrom()
dowhile="y"
while dowhile =="y":
item=raw_input("please enter item discription, or barcode No. ")
if itemx!=[]:
for y in itemx:
if item==y[0] or item==y[1]:
raise TypeError("This Item is already added")
case=int(raw_input("Enter how much holds in one (1) case: "))
caseNo=int(raw_input("how many cases are there? "))
for i in stockList():
if item==i[1] or item==i[0]:
itemx+=[[i[0],i[1],case,caseNo]]
print "ITEM ADDED"
dowhile=raw_input("Do you want to add another?(Y/N) ")
"""
about to write itemx to a file:
"""
writeTo()
return itemx
答案 0 :(得分:2)
我写的文件(ListItemz.txt)有并发症,所以我只是删除了非常的东西,并开始了新的。
答案 1 :(得分:1)
我认为错误不是来自上面的代码。解析和语法指的是试图读取程序的Python解析器,而不是读取或写入的程序。由于上面的程序没有完成 - 没有主程序 - 很难看出错误的起源。或者也许是主程序,但缩进是关闭的。
还有这个奇怪的结构:
if itemx==[]:
itemx=[]
这是真的正确吗?
要尝试查明问题,可以使用(不足之处)Python调试器(pdb)。在顶部添加import pdb
,然后在您要停止程序的位置插入一行:
pdb.set_trace()
然后你可以这样做:
n<enter> to advance a line of code
p variable<enter> to see the value of a variable
c<enter> to continue at full speed
... and a lot more - see the pdb manual.
直到程序前进,直到错误弹出。