Я прочитал довольно много ссылок на сайте, в которых говорится об использовании «os.path.abspath (# filename)». Этот метод не совсем работает для меня. Я пишу программу, которая сможет искать в данном каталоге файлы с определенными расширениями, сохранять имя и абсолютный путь как ключи и значения (соответственно) в словаре, а затем использовать абсолютный путь для открытия файлов и создания необходимые правки. У меня проблема в том, что когда я использую os.path.abspath(), он не возвращает полный путь.
Допустим, моя программа находится на рабочем столе. У меня есть файл, хранящийся в "C:\Users\Travis\Desktop\Test1\Test1A\test.c". Моя программа может легко найти этот файл, но когда я использую os.path.abspath(), она возвращает «C:\Users\Travis\Desktop\test.c», что является абсолютным путем, где хранится мой исходный код, но не файл, который я искал.
Мой точный код:
import os
Files={}#Dictionary that will hold file names and absolute paths
root=os.getcwd()#Finds starting point
for root, dirs, files in os.walk(root):
for file in files:
if file.endswith('.c'):#Look for files that end in .c
Files[file]=os.path.abspath(file)
Любые советы или рекомендации относительно того, почему он может это делать и как я могу это исправить? Заранее спасибо!
os.path
поощряет множество подверженных ошибкам шаблонов в вашем коде. Вам, вероятно, следует избегать этого настолько, насколько это возможно. Рассмотрите одну из лучших сторонних библиотек путей (например, pypi.python.org/pypi/filepath или даже pypi.python.org/pypi/strpath) - person Jean-Paul Calderone   schedule 16.05.2014os.path
поощряет множество подверженных ошибкам шаблонов, нелепо. - person Martijn Pieters   schedule 16.05.2014pathlib
? Начиная с Python 3.4, это теперь часть стандартной библиотеки. - person Martijn Pieters   schedule 16.05.2014