我试过的方法,我没有看到运气,文件没有多说关于存储输出。我试过如下:Python子过程存储呼叫输出到文件
import subprocess
f = open(r'/var/log/temp.txt','w')
subprocess.call('cd /var/log/messagelog', shell=True, stdout=f)
f.close()
with open("/var/log/temp.txt",'r') as f:
for line in f:
print line
我想要做的就是让程序识别该目录不存在。 ive暂时替代了一个简单的打印声明。我不能使用check_output,因为在30个不同的系统上更新Python对此非常不切实际。打印行应该产生:“cd:不能cd到/ var/log/messagelog”。希望这是我在这里创造的一个新秀错误,所以在这里另一组眼睛将不胜感激。
编辑:我想在这里做的是看看目录是否存在,如果不存在,然后创建目录。可能还有其他方法可以做到这一点,但我所看到的一切都指向了子进程。 CD不是一个程序,因此我必须使用呼叫代替Popen。
stderr在哪里? – PTBNL
您收到权限错误?另外'cd/var/log/messagelog'应该是干什么的? –
该目录不存在,并且当运行该命令时出现“cd:can not cd to/var/log/messagelog”语句,因此没有权限在此处拒绝错误。它应该尝试cd到该目录,并且如果它得到“cant cd”错误,它应该创建该目录。否则它会通过 – bladexeon