大家好我想把pg_dump的控制台输出记录到一个文件但是下面不能这样做是我写的函数
import subprocess
def backupOperation():
p = subprocess.Popen(["pg_dump","-v","-Fc","-d","database_name","-- file","output.dump"], stdout=subprocess.PIPE)
output, err = p.communicate()
fo = open("log.txt", "wb")
fo.write(output)
backupOperation()
但我的log.txt文件为空。 我是python编程的新手,请帮助我。
答案 0 :(得分:0)
它适用于我,但您不会关闭您的文件,这可能是问题所在。
[EDIT]使用ls
测试并且有效。 pg_dump
然而写给stderr。下面的工作代码:
import subprocess
def backupOperation():
p = subprocess.Popen(["pg_dump","-v","-Fc","-d","database_name","--file","output.dump"],
stderr=subprocess.PIPE)
output, err = p.communicate()
print(output)
print(err)
with open("log.txt", "w") as fo:
fo.write(err)
backupOperation()