Форум сайта python.su
Столкнулся с такой вот проблемой. Главный файл программы находится в директории c:\Projects
в этом файле в цикле я обхожу с помощью функции os.walk(“c:\users\vasya\Desktop\foto”)
и хочу открыть определенные файлы, питон их не находит, тогда я вставил в цикл print(os.path.abspath(i))
где i переменная в цикле. И абсолютный путь к файлу стал привязан к папке где основная программ
c:\Projects\foto1.jpg где его естественно нет (принт выводить c:\Projects\foto1.jpg) А почему ? И что здесь не так?
for x, y, z in os.walk("C:\\users\\vasya\\Desktop\\foto"): for i in z: print(i) print(os.path.abspath(i)) f = open(i, 'rb')
Офлайн
print(os.path.join(x, i))
Офлайн
Спасибо.
А почему os.path.abspath выдает такую чушь. Ведь абсолютный путь он на то и абсолютный. Мне не понятна логика работы.
Офлайн
roggerg
чушь в данном случае выдает не python, а кто то более оживленный.
Вот вам наглядный пример (можно опустить некоторые особенности MacOS в плане /private)
MacBook-Pro-Mahmudov:one john_16$ pwd
/tmp/one
MacBook-Pro-Mahmudov:one john_16$ ll two/file.txt
-rw-r--r-- 1 john_16 wheel 0 21 июл 23:46 two/file.txt
MacBook-Pro-Mahmudov:one john_16$ python3
Python 3.5.1 (default, Apr 18 2016, 03:49:24)
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.getcwd()
'/private/tmp/one'
>>> os.path.exists('two/file.txt')
True
>>>
>>> os.path.abspath('two/file.txt')
'/private/tmp/one/two/file.txt'
Офлайн