【问题标题】:changing directory whist running python code [duplicate]更改运行python代码的目录[重复]
【发布时间】:2013-07-22 10:04:37
【问题描述】:

我有一段代码运行另外四段代码。但是,当这些代码运行时,它们会将其输出写入我运行此代码的目录中。我想知道是否有一种方法可以运行代码,以便每次之后都会更改目录,这是我的代码:

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)

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

【问题讨论】:

  • 不要使用os.system。请改用subprocess 模块。它允许您设置工作目录per command

标签: python


【解决方案1】:

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

【讨论】:

  • 如果您认为没问题,您应该接受答案。
  • 我要等到你回答后十分钟
【解决方案2】:

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

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

原因很简单:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-05
    • 1970-01-01
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-02
    相关资源
    最近更新 更多