代码之家  ›  专栏  ›  技术社区  ›  FanMan

尝试并排除FileNotFoundError

  •  0
  • FanMan  · 技术社区  · 6 年前

    我正在设置一个程序,以使用指定的文件位置,但希望能够改变它,如果文件被移动。我希望程序读取记事本文件,其中包含正确的文件位置的链接。正如你所看到的,try-and-except没有像我希望的那样工作,也不知道为什么。

    这是我的密码:

    def hours():
    
        #getting username
        global username
        username = getpass.getuser() 
    
        #defining excel location
        try:
            global filelocation
            filelocation = r'\\flash\Users\Coop\Volunteering\ProgramReferenceX.xlsx'
        except FileNotFoundError:
            global desktop
            desktop = r'C:\Users\\' + username + '\Desktop\Filelocation.txt'
            filelocationtext = open(desktop,'r')
            filelocation = filelocationtext.read()
    
    
        global filelog
        filelog=pd.read_excel(filelocation ,read_only=True, sheetname=None, na_filter=False)
    
    
        #setting password
        global passwordx
    
        logbook=pxl.load_workbook(filelocation, data_only=False)
        ashx=logbook['datasheet']
    
        passwordx = ashx.cell(row=16, column=15).value
    

    我得到的输出是:

    FileNotFoundError:[Errno 2]没有这样的文件或目录: '\\flash\Users\Coop\furnaling\ProgramReferenceX.xlsx'

    1 回复  |  直到 6 年前
        1
  •  2
  •   Matt Messersmith    6 年前

    A FileNotFoundError 执行字符串赋值时不会引发。所以,

    global filelocation
    filelocation = r'\\flash\Users\Coop\Volunteering\ProgramReferenceX.xlsx'
    

    扔一个 文件NotFoundError 开放 一个文件,就像你在这里做的那样:

    filelocationtext = open(desktop,'r')
    

    open try 块,并在抛出错误时相应地执行操作。

    打开 布洛克:不是 except 阻止。

    编辑(代码已更新):

    pd.read_excel 同时打开一个文件(和 px.load_workbook 可能也是)。它可以扔一个 也。你会想把它放在 尝试 filelocation 变量。