我试图在下面使用此代码...
**subprocess.Popen('%USERPROFILE%\\AppData\\Local\\Temp\\AdobeARM - Copy.log').communicate()**
但是我收到了一条错误消息。 有人可以帮忙吗?
答案 0 :(得分:2)
由于路径中有环境变量,您可以添加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)