在运行python代码时更改目录

时间:2013-07-23 11:07:52

标签: python

我有一段代码,运行其他四段代码。然而,当这些代码运行时,他们将写出的写入写入我运行此代码的目录。我想知道是否有一种方法来运行代码,以便每次都改变目录,这是我的代码:

loop=np.arange(187761,187854)
for ext in loop:
 ext=str(ext)
 s0='' 
 dcom=["rm *.txt"]
 dcom=s0.join(dcom)
 nes=os.system(dcom)

 a=sys.argv[1]
 com=['cd /cygdrive/e/desar2.cosmology.illinois.edu+7443/DESFiles/desardata/OPS/red/', a,'/red/DECam_00',ext, '/']
 com=s0.join(com)
 print com
 sres=os.system(com)

 com=['python /home/pythoncodes/other4.py ', '00'+ext]
 com=s0.join(com)
 print com
 sres=os.system(com)

 com=['python /home/pythoncodes/correctedmo.py ', '00'+ext]
 com=s0.join(com)
 print com
 sres=os.system(com)

 com=['python /home/pythoncodes/graphs.py ', '00'+ext]
 com=s0.join(com)
 print com
 sres=os.system(com)

 com=['python /home/pythoncodes/whiskerother4.py ', '00'+ext]
 com=s0.join(com)
 print com
 sres=os.system(com)

我希望顶部会改变每个分机的目录,但事实并非如此。有没有办法做到这一点,还是我应该改变程序写入不同的目录?

2 个答案:

答案 0 :(得分:2)

您可以使用os.chdir(path)更改当前目录。

答案 1 :(得分:0)

我不懂Python,所以在这个答案中没有代码。我的理解是,如果您在目录/foo/下运行脚本,脚本将输出到/foo/bar.txt。如果您将目录更改为faa,则会输出到/faa/bar.txt。接下来,无论脚本执行的是什么目录,您都希望有一种始终写入特定目录的方法。

可以更改您的代码所在的目录,但这可能不是您想要做的。您需要在一次传递中将文件输出到目标目录,例如。 write("~/static_dir/"+file_name, file_contents)

原因很简单:

  • 更少的命令
  • 难以迷失在目录中