繁体   English   中英

我不能使用子进程在临时文件夹中运行文件吗?

[英]Can't I run file in temporary folder using subprocess?

我试图在下面使用此代码...

**subprocess.Popen('%USERPROFILE%\\AppData\\Local\\Temp\\AdobeARM - Copy.log').communicate()**

但我收到一条错误消息。 有没有人可以帮助您?

由于路径中有一个环境变量,因此您可以添加shell=True以强制运行将评估env的批处理。 瓦尔:

subprocess.Popen('"%USERPROFILE%\\AppData\\Local\\Temp\\AdobeARM - Copy.log"',shell=True).communicate()

注意带引号的保护,因为有空格。 如果将包含一个元素的列表传递给Popen ,则也可以删除引号:

subprocess.Popen(['%USERPROFILE%\\AppData\\Local\\Temp\\AdobeARM - Copy.log'],shell=True).communicate()

另外,如果您只想激活日志文件的默认编辑器,则有一种更简单的方法(它不会阻塞执行脚本,因此略有不同):

p = os.path.join(os.getenv('USERPROFILE'),r"AppData\Local\Temp\AdobeARM - Copy.log")
os.startfile(p)

也许它甚至更简单,因为这可能是您要访问的临时目录:

p = os.path.join(os.getenv('TEMP'),r"AdobeARM - Copy.log")
os.startfile(p)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM