命令行命令在Python中不起作用 - 不发送文件

时间:2014-05-15 12:38:01

标签: php python youtube

我正在使用youtube-upload命令行脚本(奇怪的是)将视频上传到youtube。我将我的变量从PHP传递到Python,后者生成命令字符串并将其传递给

result = subprocess.call(copmmand, shell=True)

我的脚本生成的命令如下:

youtube-upload --description="$(< \sites/default/files/descriptions/5799.txt)" --title="Title" --category=Music sites/default/files/videos/5799.mp4

或(带有前缀反斜杠的youtube上传文档列表,可以获得相同的结果)

youtube-upload --description="$(< sites/default/files/descriptions/5799.txt)" --title="Title" --category=Music sites/default/files/videos/5799.mp4

现在,除了描述文本文件之外,脚本工作正常。在python之外,在命令行中,它就是这样做的。我也试过传递文件的完整路径......但它没有发生。

堆栈跟踪输出中没有错误

有什么想法吗?

P.S。我将它作为文件传递,因为当我试图从json对象中的php传入一个字符串时,我无法在另一端检索它。任何人都可以指出我在这个问题的正确方向吗?

1 个答案:

答案 0 :(得分:1)

我通过将文件打开到变量并将其传递到命令

来解决这个问题
    with open ("/home/mmallett/Sites/GottaLoveSoul/sites/default/files/descriptions/" + nid + ".txt", "r") as myfile:
        data=myfile.read().replace('\n', '')

    upload = 'youtube-upload --description="' + data + '" --title="' + title + '" --category=Music ' + video

result = subprocess.check_output(upload, shell=True)