我有以下内容:
application/3rdPArtyApp/file.py
application/3rdPArtyApp/directory/someFile
application/MyApp/file.py
我想从MyApp从3rdpartyapp访问文件,因此我在myApp/file.py.py
中进行以下操作sys.path.append('../3rdPArtyApp')
这可以正常工作,我现在可以通过导入文件来访问文件和功能。
但是,在3rdpartyapp中有一个文件,试图在文件夹中访问文件目录/somefile 。
它使用以下内容来检查其是否失败的文件,每当它从MyApp调用时,但是当它单独使用3rdpartyapp时就不会失败。
。os.path.isfile(file)
我假设从MyApp调用时是否失败,因为它希望它是MyApp路径。
如何解决此问题?
如果您不能更改库代码,我认为您必须在每次呼叫之前都必须更改工作目录。
i因此实现了此类似功能的助手类change_cwd
。只需用with change_cwd('../3rdPArtyApp'):
包装每个功能呼叫到外部库。
import os
class change_cwd:
def __init__(self, path):
self.path = os.path.abspath(path)
def __enter__(self):
self.old_cwd = os.getcwd()
os.chdir(self.path)
def __exit__(self, exc_type, exc_value, traceback):
os.chdir(self.old_cwd)
print(os.getcwd())
with change_cwd('Downloads'):
print(os.getcwd())
print(os.getcwd())
/home/<user>
/home/<user>/Downloads
/home/<user>