2014-10-30 2 views
0

Если я запускаю файл D:\test.py:Python скрипт выполняется из своего каталога

f = open('blah.txt','w') 
f.write('test') 

с командой (например, из меню Пуск Windows'> Run)

C:\Python27\python.exe D:\test.py 

то файл blah.txt будет создан в C:\Python27\ вместо D:\!

Как сделать скрипт D:\test.py запущен из каталога D:\? (то есть выходной файл должен быть D:\blah.txt). Какую команду следует писать в Меню «Пуск»> «Выполнить»?

+0

Если '.py' связано с Python, тогда попробуйте' d: \ test.py' напрямую. –

+0

@GregHewgill это не так: '.py' связаны с моим инструментом редактора (Notepad ++) – Basj

+0

Ну, по крайней мере, это легко исправить. –

ответ

1

Выходной файл, созданный на местоположении python.exe, является ожидаемым поведением ОС. Когда вы запускаете приложение таким образом, его рабочий каталог будет установлен в каталог, в котором находится файл .exe. Сам Python не изменит рабочий каталог на место сценария, поэтому вам придется делать это вручную. Один из способов изменить каталог в начале вашего test.py сценария:

import os 
import sys 
os.chdir(os.path.dirname(sys.argv[0])) 

Другой способ изменить свою команду «Выполнить», чтобы что-то вроде этого:

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

Это можно поставить в пакетный файл, если вам не нравится набирать много :)

Смежные вопросы