Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从自己的目录执行的Python脚本_Python_Windows_Directory - Fatal编程技术网

从自己的目录执行的Python脚本

从自己的目录执行的Python脚本,python,windows,directory,Python,Windows,Directory,如果启动文件D:\test.py: f = open('blah.txt','w') f.write('test') 使用命令(例如,从Windows的“开始菜单>运行”) 然后将在C:\Python27\中创建文件blah.txt,而不是D:\ 如何使脚本D:\test.py从目录D:\?运行(即输出文件应为D:\blah.txt)我应该在“开始菜单”>“运行”中写入什么命令?在python.exe位置创建的输出文件是预期的操作系统行为。以这种方式启动应用程序时,其工作目录将设置为.exe文

如果启动文件
D:\test.py

f = open('blah.txt','w')
f.write('test')
使用命令(例如,从Windows的“开始菜单>运行”)

然后将在
C:\Python27\
中创建文件
blah.txt
,而不是
D:\


如何使脚本
D:\test.py
从目录
D:\
运行(即输出文件应为
D:\blah.txt
我应该在“开始菜单”>“运行”中写入什么命令?

python.exe
位置创建的输出文件是预期的操作系统行为。以这种方式启动应用程序时,其工作目录将设置为.exe文件所在的目录。Python本身不会将工作目录更改为脚本位置,因此您必须手动执行此操作。一种方法是更改
test.py
脚本开头的目录:

import os
import sys
os.chdir(os.path.dirname(sys.argv[0]))
另一种方法是将“Run”命令更改为如下内容:

cd /D D:\ && C:\Python27\python.exe D:\test.py

如果
.py
与Python关联,则可以将其放入批处理文件中:)

如果
.py
与Python关联,则直接尝试
d:\test.py
。@GregHewgill不是:
.py
与我的编辑器工具(记事本++)关联,至少这很容易修复。@GregHewgill:No,我不想将
.py
与Python关联,我想将.py与我的文本编辑器关联起来。我想找到一个解决方案,而不必修改我的文件类型关联。
cd /D D:\ && C:\Python27\python.exe D:\test.py