当我运行我的函数时,我不断收到此错误: - SyntaxError:解析时意外的EOF

时间:2015-05-29 21:44:59

标签: python

当我运行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

2 个答案:

答案 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.

直到程序前进,直到错误弹出。