我目前正在创建一个脚本,它只需在与脚本相同的目录中打开一个程序。我想要一个名为“的文本文件”目标.txt,基本上脚本会读取目标.txt“并根据其内容打开一个文件。你知道吗
例如。。文本文件将读取“程序.exe“然后打开里面的剧本程序.exe. 我这样做的原因是很容易改变脚本打开的程序,而不必改变里面的内容。你知道吗
我正在为此使用的当前脚本是:
import subprocess
def openclient():
with open("target.txt", "rb") as f:
subprocess.call(f.read())
print '''Your file is opening'''
它给了我一个错误,说它找不到目标.txt,即使我在同一个目录下。我试过删除.txt文件,但还是一无所获。然而,这段代码以前确实有效;它因为某种奇怪的原因停止了工作。我使用PythonWin编译器而不是IDLE,我不知道这是不是原因。你知道吗
有两个可能的问题:
target.txt
可能以换行结束,这会把subprocess.call()
如果
target.txt
不在当前目录中,您可以通过解析魔法变量__file__
来访问包含当前正在执行的Python文件的目录。你知道吗但是,
__file__
是在脚本加载时设置的,如果在加载脚本和调用openclient()
之间更改了当前目录,__file__
的值可能是相对于旧的当前目录的。因此,在第一次读入脚本时,必须将__file__
保存为绝对路径,然后使用它访问与脚本位于同一目录中的文件。这段代码对我很有用,
target.txt
包含字符串date
来运行Unix date命令:相关问题 更多 >
编程相关推荐