2014-11-21 51 views
-1

我正在与Python 2.7.x的Linux上工作,我正在通过终端运行一些程序python。我希望某些输出应该写入位于不同于我的工作目录的目录中的文件中。所以我写了这段代码。但是,正在发生的是在当前目录中创建文件All.txt,而不是所需的目录。有人可以帮我解决我出错的地方吗?如何在python中的不同目录中写入文件?

ResultDir = '/pr/p1/ap11/' 
os.system('cd ' + ResultDir) 
Outputname1 = 'All.txt' 
Output1 = open(Outputname1, 'a') 
Output1.write('hello' +'\n') 
Output1.close() 
+0

您对'os.system'的调用启动一个新的shell,更改其工作目录,然后立即销毁该shell。你的脚本集的工作目录没有任何意义。 (如果你想这样做,你可以使用'os.chdir()'。) – Cameron 2014-11-21 23:17:09

回答

8

使用os.system更改当前目录不会影响正在运行的Python进程。直接用完整路径打开文件:

with open('/pr/p1/ap11/All.txt', 'a') as output: 
    output.write('hello\n') 
+0

我需要提一些输出流对象关闭语句吗?正如我在我的代码'Output1.close()'中写的? – b2850624 2014-11-21 23:23:30

+0

@ b2850624不,如果您使用类似'with'语句,文件将自动关闭。 – poke 2014-11-21 23:27:58

相关问题