python - 如何在子进程 Popen 中引用工作区中的文件?

标签 python subprocess python-imaging-library

目前,我有一个程序可以从网络下载图像,并将其保存在 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 错误,如果我将路径的开头更改为“C:\\” (有两个斜杠,无法格式化 :( ),然后我没有收到错误,但文件就是打不开。

路径是否总是必须从 C:\引用,或者是否存在某种直接指向默认目录的流行语?

urlretrieve("%s?%s" % (url,parameters),"pic.jpg")

这是保存文件的方法,保存在默认目录

最佳答案

您收到的错误是由于字符串中的 \U 造成的,Python 尝试将其解释为 \Uxxxxxxxx 转义序列(其中 x 是 32 位 Unicode 序数的十六进制数字)。将第一个反斜杠加倍后遇到的问题可能与路径中稍后的其他转义序列有关(例如,\a 变成 ASCII“BEL”字符)。

您需要转义所有反斜杠,或者通过将路径设为“原始”字符串文字来告诉Python不要查找转义序列:r"C:\Users\。 ..\赋值1\pic.jpg"

关于python - 如何在子进程 Popen 中引用工作区中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25478232/

相关文章:

python - 我如何获得 Pandas 中一行的相等或最接近的值?

python - 将 sqlite3 数据库连接/存储在默认目录以外的指定目录中 - "conn = sqlite3.connect(' name_of_database')"

c++ - 多次调用 std::cout 使子进程挂起

python - 用另一个数组替换 2D numpy 数组中的 1 和 0?

python - 使用 PIL 从任何图像中删除透明度/alpha

python - 类属性中的属性错误

python - py2exe 64位python 2.7安装

python - 使用子进程重定向 shell 输出

python -/bin/sh : -c: line 0: syntax error near unexpected token `('

python - 如何修复 _load_libtiff 函数中的 IOError?