Try和except语句,Python

Try和except语句,Python,python,pandas,exception,Python,Pandas,Exception,这似乎是一个简单的问题,但我无法通过谷歌搜索和阅读Stackoverflow找到答案 我的问题是如何对变量使用try语句并将其附加到列表中 在下面的示例中,我试图使用pandas从文件列表中获取索引标签。我想把每一个都转换成一个变量,将它们全部附加到一个列表中,并将它们连接起来。然而,我很难理解如何尝试“parsed_file.loc[“Staff”:“Total Staff”].copy()”,并将其转换为要附加到列表中的变量 我有点理解,在下面的例子中,我试图在全局范围中使用一个局部范围变量

这似乎是一个简单的问题,但我无法通过谷歌搜索和阅读Stackoverflow找到答案

我的问题是如何对变量使用try语句并将其附加到列表中

在下面的示例中,我试图使用pandas从文件列表中获取索引标签。我想把每一个都转换成一个变量,将它们全部附加到一个列表中,并将它们连接起来。然而,我很难理解如何尝试“parsed_file.loc[“Staff”:“Total Staff”].copy()”,并将其转换为要附加到列表中的变量

我有点理解,在下面的例子中,我试图在全局范围中使用一个局部范围变量,这将抛出一个NameError。我可以使用一个函数并在函数中返回变量,但是我得到了一个“TypeError:无法连接非NDFrame对象”。我试图将变量转换为函数中的数据帧,但它返回相同的错误

并非所有文件都有索引标签,因此我使用except:keyrorm跳过这些文件,并打印文件位置

for file_ in allFiles:
        parsed_file = read_workbook(file_)
        parsed_file['filename'] = os.path.basename(file_)
        parsed_file.set_index(0, inplace = True)
        parsed_file.index.str.strip()

        try: Staff_ = parsed_file.loc["Staff" : "Total Staff"].copy()
        except KeyError: 
            print(file_)

        list_.append(Staff_)
frame = pd.concat(list_)

try块中的所有内容都将逐行执行,如果发生异常,它将停止执行并跳转到except块。因此,我对您的代码做了一些更改,如果您执行
Staff\uu=parsed\u file.loc[“Staff”:“Total Staff”].copy()时出现异常,它将不会执行try块中的其余行。这里的文档描述了try


你真正的问题是什么?我建议把你的问题弄清楚一点,让它更清楚你需要什么帮助。这是无效的
loc
语法,除非你使用的是
multi-index
dfs。这更有意义吗Stefan?我不确定我是否理解这个问题,但似乎你可以通过放置
list\uuu.append(Staff\ux)来解决这个问题
块内尝试
吗?然后,在异常情况下,不需要定义
Staff。
for file_ in allFiles:
        parsed_file = read_workbook(file_)
        parsed_file['filename'] = os.path.basename(file_)
        parsed_file.set_index(0, inplace = True)
        parsed_file.index.str.strip()

        try: 
            Staff_ = parsed_file.loc["Staff" : "Total Staff"].copy()
            # Line below won't be executed in case of an exception
            list_.append(Staff_)
        except KeyError: 
            print(file_)

frame = pd.concat(list_)