我正在编写一个 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)
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 块”中没有其他问题可以出错。
添加回答
举报
0/150
提交
取消