2010-02-22 4 views
2

Использование Python, как один разбор/доступ к файлам с функциями Linux, такими как "~/.mozilla/firefox/*.default"? Я пробовал это, но он не работает.Python: Как получить доступ к путям Linux

Благодаря

+1

Что именно вы подразумеваете под «разбором»? О каких функциях, связанных с Linux, вы имеете в виду? Что вы пробовали, что не сработали? –

ответ

7

os.popen() Это

import glob, os 
glob.glob(os.path.expanduser('~/.mozilla/firefox/*.default')) 

даст вам список всех файлов, оканчивающийся на «.DEFAULT» в каталоге ~/.mozilla/firefox текущего пользователя, используя os.path.expanduser, чтобы развернуть ~ в пути и glob.glob в соответствии с шаблоном файла *.default.

+0

Спасибо! Отлично. Тогда я могу использовать $ your_code [0] и получить любые файлы, которые я хочу в этом каталоге. Извините, я не могу проголосовать за ваш ответ, у меня недостаточно репутации. – Jonah

2

~ расширяется оболочкой, а не реальный путь. Таким образом, вы должны перемещаться туда вручную.

import os 

homeDir = os.environ['HOME'] 
f = open(homeDir + '/.mozilla/firefox/*.default') 
# ... 
+0

Это не работает. Звездочка - это дикая карта, а не часть имени. – Jonah

+0

О, не заметил этого. – poke

+0

Спасибо, это очень помогло мне. Случайно этот метод также работает для записи нового файла в путь $ HOME. т.е. импорт ОС DirectoryPath = os.environ [ 'HOME'] файл = открыт (DirectoryPath + "/newFile.csv", "ш") – TheJulyPlot

1

http://docs.python.org/library/os.html дает полную ссылку, если вы хотите изменить каталог или дайте пути.

Вы можете, например, предоставить относительные пути и получить доступ к определенным файлам.

Если вы хотите выполнять команды, то http://docs.python.org/library/commands.html обеспечивает хорошие обертки для функции

1

Важно помнить:

  • использование тильды ~ расширяет домашний каталог в соответствии с ответом тыкать в
  • использование прямой слэш / является сепаратор для Linux/* NIX каталогов
  • по по умолчанию, * nix-системы, такие как linux, например, имеют флеш-карту в оболочке, например, echo *.* вернет все файлы, соответствующие звездочке звездочки (как ответ Will McCutcheon!)

Надеюсь, это поможет, С уважением, Tom.

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