为了账号安全,请及时绑定邮箱和手机立即绑定

在python中使用`try``except`在不同目录上重复完全相同的代码

在python中使用`try``except`在不同目录上重复完全相同的代码

月关宝盒 2022-04-27 13:12:26
我正在编写一个 python 脚本,将不同文件中的信息解析为 pandas 数据帧。一开始是针对某个目录,然后调用命令解析多个文件的信息。但是,如果该目录不存在,我应该执行完全相同的代码,但在另一个目录中。为了说明,它应该是这样的:import ostry:    cwd = "/path/do/dir"    os.chdir(cwd)    #do a code block hereexcept FileNotFoundError: # i.e. in case /path/to/dir does not exist    cwd = /path/to/anotherDir    os.chdir(cwd)    # do the same code block我目前正在做的是在块中try和块中重复相同的代码except块,尽管我想知道是否有更优雅的方法,比如将整个代码块分配给变量或函数,然后调用它中的变量/函数except chunk。
查看完整描述

2 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

您可以简单地遍历路径列表,并为每个文件尝试您的代码块。如果您想在找到可行的路径后立即停止迭代,您甚至可以在块break的末尾添加 a。try


paths = ['path/to/dir', 'path/to/other/dir']


for cwd in paths:

    try:

        os.chdir(cwd)


        # code that may fail here


        break


    except FileNotFoundError:

        # This will NOT cause the code to fail; it's the same as `pass` but

        # more informative

        print("File not found:", cwd)


查看完整回答
反对 回复 2022-04-27
?
12345678_0001

TA贡献1802条经验 获得超5个赞

简单地检查目录/文件是否存在不是更好吗?


import os

if os.path.isdir('some/path') and os.path.isfile('some/path/file.txt'):

    os.chdir('some/path')

else:

    os.chdir('other/path')


#code block here

当然,这假设在“#code 块”中没有其他问题可以出错。


查看完整回答
反对 回复 2022-04-27
  • 2 回答
  • 0 关注
  • 175 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信