测试过程中,如何改变python的工作目录,并引用新目录下的其他模块或文件

来源:互联网 发布:金融软件开发商 编辑:程序博客网 时间:2024/05/18 08:24

        缘由:由于测试工作需要,写了大量的python代码,都放在工作目录下面,后来发现些的代码文件太多了,放在目录下面显得有些杂乱,索性整理了一番,刚一整理,问题来了。引用的各种文件和包无法找到了。

       原因:这些问题的出现时由于改变python代码路径的缘故。因为当前脚本的路径改变了。比如说之前是 /home/test/work,现在的工作目录变成了/home/test/work/cases

       后来想不就是跳到上级目录么?然后在那些文件的顶部加了如下代码:

import syssys.path.append('..')


     执行之后发现问题依然存在。部分文件或者包依然不能引用。

     经过仔细检查后发现,上面那段代码只是把当前目录的上级目录加到path路径中。并没有解决根本问题。

最终解决的方法如下:

import sysimport osos.chdir("..")sys.path.append(os.getcwd())


工作原理是:先用os.chdir 改变当前工作目录到上一级(也就是把工作目录从 /home/test/work/cases 改变到 /home/test/work ),然后把新的当前路径加入到path中.

最终问题得以完全解决。

方法不太好,如果有更好的办法,请各位教我,非常感谢。。。

 

附:python下目录操作的方法:

os.sep 可以取代操作系统特定的路径分割符。 
os.name字符串指示你正在使用的平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'。 
os.getcwd()函数得到当前工作目录,即当前Python脚本工作的目录路径。 
os.getenv()和os.putenv()函数分别用来读取和设置环境变量。 
os.listdir()返回指定目录下的所有文件和目录名。 
os.remove()函数用来删除一个文件。 
os.system()函数用来运行shell命令。

os.linesep字符串给出当前平台使用的行终止符。例如,Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'。

os.path.split()函数返回一个路径的目录名和文件名。

os.path.isfile()和os.path.isdir()函数分别检验给出的路径是一个文件还是目录。

os.path.existe()函数用来检验给出的路径是否真地存在

os和os.path模块
os.listdir(dirname):列出dirname下的目录和文件
os.getcwd():获得当前工作目录
os.curdir:返回但前目录('.')
os.chdir(dirname):改变工作目录到dirname

 

原创粉丝点击