Python 无法使用os.system下载文件

Python 无法使用os.system下载文件,python,python-3.x,wget,Python,Python 3.x,Wget,我试图用python中的os.system下载一个文件,但它从未完全下载该文件 这是密码 导入操作系统 url='wget-load cookies/tmp/cookies.txthttps://docs.google.com/uc?export=download&confirm=$wget-quiet-保存cookies/tmp/cookies.txt-保留会话cookies-无检查证书https://docs.google.com/uc?export=download&id=0BzQ6rtO

我试图用python中的os.system下载一个文件,但它从未完全下载该文件 这是密码

导入操作系统 url='wget-load cookies/tmp/cookies.txthttps://docs.google.com/uc?export=download&confirm=$wget-quiet-保存cookies/tmp/cookies.txt-保留会话cookies-无检查证书https://docs.google.com/uc?export=download&id=0BzQ6rtO2VN95cmNuc2xwUS1wdEE -O-| sed-rn s/*确认=[0-9A-Za-z|]+.*/\1\n/p&id=0BzQ6rtO2VN95cmNuc2xwUS1wdEE-O cnn\u stories\u tokenized.zip和&rm-rf/tmp/cookies.txt' 操作系统URL
在终端上使用相同的命令下载文件时,效果很好,是否有任何转义字符需要处理?

有一种方法,您可以运行此命令。我想你可能已经知道答案了

将linux命令另存为shell脚本: e、 g.:vi downloader.sh

保存文件。从python调用此文件

from subprocess import call
call(["bash", "downloader.sh"])
这是解决您的问题的一种方法,使用python库的其他替代方法也是可能的,如

请求包

是否有我应该处理的转义字符

简短回答:是的

字符串中有\1和\n,Python试图将其解释为正常的转义序列

您可以通过将每个反斜杠加倍来手动转义它们,也可以将其转换为原始字符串


要生成原始字符串,请在开头的引号“making it r”wget处添加r。。。。Raw意味着Python将按原样使用它,而不是试图解释看起来像转义码的东西,例如r'\n'='\n。在任何有文件或正则表达式路径的地方,只需使用原始字符串,不用担心自己会逃过反斜杠,只需将您编写的内容粘贴到其他地方即可

对。字符串中有\1和\n,Python试图将其解释为正常的转义序列。在开头的引号“making it r”处加上r。。。若要使其成为原始字符串,Python将不会尝试解释类似转义码的内容,例如r'\n'='\\n。在任何有文件或正则表达式路径的地方,只需使用原始字符串,不用担心自己会逃过反斜杠。完美的,它就像一个符咒!谢谢请将此添加为答案,我将接受它,并将在此处供任何人参考谢谢,我将此作为代码的一部分,我不认为每次运行python脚本时都可以继续添加.sh文件
from subprocess import call
call(["bash", "downloader.sh"])