Python 如何在子流程Popen中引用工作区中的文件?
目前,我有一个程序可以从web下载一个图像,它将图像保存在python项目保存的同一目录中 我正在使用Python 如何在子流程Popen中引用工作区中的文件?,python,subprocess,pillow,Python,Subprocess,Pillow,目前,我有一个程序可以从web下载一个图像,它将图像保存在python项目保存的同一目录中 我正在使用 r=subprocess.Popen(["rundll32.exe","shimgvw.dll,ImageView_Fullscreen","C:\\pic.jpg"]) time.sleep(3) r.kill() 但是,如果我将路径从“C:\\pic.jpg”更改为“C:\Users\…\assignment1\pic.jpg”,则路径中会出现unicode错误,如果我将路径的开头更改为
r=subprocess.Popen(["rundll32.exe","shimgvw.dll,ImageView_Fullscreen","C:\\pic.jpg"])
time.sleep(3)
r.kill()
但是,如果我将路径从“C:\\pic.jpg
”更改为“C:\Users\…\assignment1\pic.jpg
”,则路径中会出现unicode错误,如果我将路径的开头更改为“C:\\
”(带两条斜线,无法格式化:(),然后我没有得到任何错误,但文件就是无法打开
路径是否总是必须从C:\引用,或者是否存在某种直接指向默认目录的流行语
urlretrieve("%s?%s" % (url,parameters),"pic.jpg")
这是用于保存文件的方法,该文件保存在默认目录中。您得到的错误是由于字符串中的
\U
,Python试图将该字符串解释为\uxxxxxxx
转义序列(其中x
s是32位Unicode序号的十六进制数字)。将第一个反斜杠加倍后出现的问题可能与路径后面的其他转义序列有关(\a
例如变成ASCII“BEL”字符)
您需要转义所有反斜杠,或者告诉Python不要通过将路径设置为“原始”字符串文字来查找转义序列:
r“C:\Users\…\assignment1\pic.jpg”
请将您遇到的任何错误的全文与您的问题联系起来。尝试将文件名设置为“pic.jpg”,而不尝试使用'C:\\etc.
指定实际路径。看起来图像应该保存在Python的当前工作目录中,并且只需使用该文件名即可访问。您已经您使用的是Python的rsion吗?