Короткий ответ: в текущем рабочем каталоге.
Длинный ответ:
От https://docs.python.org/2/library/stdtypes.html#bltin-file-objects
Файловые объекты реализованы с использованием пакета STDIO Кассиопеяне
https://docs.python.org/2/library/functions.html#open От
Первые два аргумента такие же, как для FOPEN STDIO в(): имя это имя файла будет открыт
Таким образом, это отвечает глядя на документацию для stdio
:
От http://www.cplusplus.com/reference/cstdio/fopen/
filename
Строка C, содержащая имя файла для открытия.
Его значение должно соответствовать спецификациям имени рабочей среды и может включать в себя путь (если поддерживается системой).
«Технические условия рабочей среды» означает, что он будет интерпретировать его так, как если бы вы ввели путь туда, где вы запускали файл, ака, cwd.
Например,, если у меня есть сценарий, расположенный в ~/Desktop/temp.py
, который гласит:
f = open("log.txt", 'r')
print "success opening"
f.close()
и у меня есть файл, расположенный на ~/Desktop/log.txt
, я получаю следующий вывод:
~/Desktop $ python temp.py
success opening
Но если I cd ..
и еще раз:
~ $ python ~/Desktop/temp.py
Traceback (most recent call last):
File "/home/whrrgarbl/Desktop/temp.py", line 1, in <module>
f = open("log.txt", 'r')
IOError: [Errno 2] No such file or directory: 'log.txt'
Просто проверить:
~ $ touch log.txt
~ $ python ~/Desktop/temp.py
success opening
Таким образом, вы можете видеть, что пытается открыть его по отношению к каталогу я побежал скрипт из не каталог, в котором сценарий находится.
http://stackoverflow.com/questions/918154/relative-paths-in-python может быть полезно посмотреть. – whrrgarbl
Возможный дубликат [os.getcwd() vs os.path.abspath (os.path.dirname (\ _ \ _ файл \ _ \ _))] (http://stackoverflow.com/questions/11274040/os-getcwd -vs-os-path-abspathos-path-dirname-file) –
Путь, начинающийся с «/», не является относительным путем. –