这个问题以前可能有人问过,但我找不到。
我在Linux机器上。我有一个从名为 /avt 的文件夹运行的 py 应用程序。(示例)这段代码不是我写的,它有大约 12 个模块。我是继承这个烂摊子的幸运工程师。此应用程序导入位于此目录下的其他模块 /avt/bin 无论当前工作目录在哪里,我都希望能够在 /bin 目录中找到我的模块。有时应用程序将 dir 更改为其他一些子文件夹以执行某些文件 I/O。然后应该返回,但似乎有时它不会返回,因为代码会出错并出现“没有这样的文件或目录”错误。所以我想在每次对 /bin 目录进行任何文件 I/O 之前测试工作目录。例如,我想在 /bin 中创建文件,然后打开这些文件并从中读取数据。如何测试以确保我当前的工作目录始终是 /avt?如果不是,那么 ch.dir 呢?注意:它还必须是可移植的代码,这意味着如果必须在任何 Linux 机器上的任何目录结构上运行。
我试过这段代码,但我认为它不是很干净。Python 不是我的主要语言。这种编码是否正确,它会为此工作吗?请原谅我不知道如何为这个论坛格式化它。
Avtfolder = os.path.realpath(os.path.abspath(os.path.split(inspect.getfile( inspect.currentframe() ))[0]))
if Avtfolder not in sys.path:
sys.path.insert(0, Avtfolder)
if Avtfolder.__contains__('/avt'):
modfilespath = Avtfolder + '/bin'
print 'bin dir is ' + modfilespath
else:
print 'directory lost...'
#write some code here that changes to the root /avt dir