Найти - Пользователи
Полная версия: Модул os.walk
Начало » Python для новичков » Модул os.walk
1
roggerg
Столкнулся с такой вот проблемой. Главный файл программы находится в директории 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')

krok64
 print(os.path.join(x, i))
roggerg
Спасибо.

А почему os.path.abspath выдает такую чушь. Ведь абсолютный путь он на то и абсолютный. Мне не понятна логика работы.
JOHN_16
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'

Ну, а что бы совсем убедиться, читаем документацию.
Разумеется все это актуально, если вы понимаете что такое рабочая директория.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB