将自身解析为列表,不是字符串

2024-09-30 04:39:37 发布

您现在位置:Python中文网/ 问答频道 /正文

仍在尝试找出我正在构建的代码并使其跨平台工作。 我有几个定义因素,这些因素是有问题的代码引用的,所以我将全部输入。你知道吗

self.mainFile = r"\SYS64"
self.dir_path = os.path.dirname(os.path.realpath(__file__))
self.mainOSProgram = "python " + self.dir_path + self.mainFile + r"\jdosos.py"

我让它工作

subprocess.Popen(["python",r'\Users\Terra Byte\Desktop\jdos3\JDOS3\SYS64\jdosos.py'])

但是它定义了一个路径,当我希望路径由代码定义时,它可以在安装程序的任何地方工作。你知道吗

我得到同样的错误,python: can't open file 'C:\Users\Terra': [Errno 2] No such file or directory

如果I print(self.mainOSProgram),这就是结果。你知道吗

python C:\Users\Terra Byte\Desktop\jdos3\JDOS3\SYS64\jdosos.py

这是正确的文件路径,但它将作为字符串进行配对,因此它在第一个空格处中断语句。你知道吗


Tags: path代码pyself路径定义osdir
1条回答
网友
1楼 · 发布于 2024-09-30 04:39:37

print(self.mainOSProgram)按原样输出字符串,这样就得到了空格。如果您尝试在命令中添加引号,它将起作用。 python "C:\Users\Terra Byte\Desktop\jdos3\JDOS3\SYS64\jdosos.py"

关于代码,我将使用os.path.join来构建路径

import subprocess
import os

dir_path = os.path.dirname(os.path.realpath(__file__))

executable_path = os.path.join(dir_path, "SYS64", "jdosos.py")
subprocess.Popen(["python", executable_path])

相关问题 更多 >

    热门问题