Оригинал статьи по этой ссылке:
Sat 4 Sep 2010
Мой перевод:
"
Когда я начинал изучать Python, первое, что я должен был узнать так это то, как открыть файл. В зависимости от контекста термин "открыть файл" может иметь разный смысл. Иногда это значит действительно открыть файл программой на языке Python и читать его как текстовый файл. В другой раз это означает “отрыть файл при помощи программы, назначенной по умолчанию”; а иногда это означает “открыть файл программой, которую я задам”. Итак, когда вы начинаете искать ответы на два последних случая, то вы должны задать Google правильные вопросы иначе получите только ответ на вопрос как открыть и прочитать текстовый файл (случай номер один).
У Python есть простой метод для открытия файла с помощью программы, используемой в операционной системе по умолчанию. Это выглядит примерно так:
Да, это просто, если вы на Windows. Если вы на Unix или Mac, вам нужен будет модуль запускающий под-процесс или “os.system”. Конечно, если вы крутой компьютерщик (a real geek), и у вас есть несколько программ для одного типа файла. Например, если я хочу редактировать мой файл JPEG с помощью Picasa, Paint Shop Pro, Lightroom, Paint.NET или множеством других программ, и при этом не хочу менять редактор для JPEG, заданный по-умолчанию. Как мы будем решать эту задачу на Python? Мы используем модуль подпроцессы!
"
Sat 4 Sep 2010
Мой перевод:
"
Когда я начинал изучать Python, первое, что я должен был узнать так это то, как открыть файл. В зависимости от контекста термин "открыть файл" может иметь разный смысл. Иногда это значит действительно открыть файл программой на языке Python и читать его как текстовый файл. В другой раз это означает “отрыть файл при помощи программы, назначенной по умолчанию”; а иногда это означает “открыть файл программой, которую я задам”. Итак, когда вы начинаете искать ответы на два последних случая, то вы должны задать Google правильные вопросы иначе получите только ответ на вопрос как открыть и прочитать текстовый файл (случай номер один).
Как открыть текстовый файл
Давайте начнем с открытия файла в языке Python. В таком случае мы имеем ввиду использовать для открытия файла программу Python а не какую-нибудь другую программу. Для этого случая мы имеем две возможности: использовать (in Python 2.x): open или file. Давайте посмотрим как это делается!# the open keyword opens a file in read-only mode by default f = open("path/to/file.txt") # read all the lines in the file and return them in a list lines = f.readlines() f.close()
Как вы можете видеть, довольно просто открыть и затем прочитать текстовый файл. Вы
можете заменить ключевое слово "open" на ключевое слово "file" и будет работать. Если
вы педант, то эту же команду можно записать следующим образом:
f = open("path/to/file.txt", mode="r")
Буква “r” означает то, что мы будем только читать файл. Вы можете открыть файл в
режимах: “rb”(чтение двоичное), “w” (запись), “a” (в режиме добавления
в конец файла) или “wb” (писать двоичную информацию). Обратите внимание что если вы используете “w” или “wb”, Python будет перезаписывать существующий файл или создавать новый, если файла не было.
Если вы хотите читать файл, вы можете использовать следующие методы:
- read - прочитать весь файл сразу и вернуть его целиком как строку
- readline - читать первую строку файла и вернуть ее как строку
- readlines – читать файл и возвращать его как список строк
f = open("path/to/file.txt") for line in f: print line f.close()
Круто! Python рулит! Теперь самое время посмотреть на то, как открыть файл при помощи другой программы.
Открыть файл при помощи соответствующей ему программы
У Python есть простой метод для открытия файла с помощью программы, используемой в операционной системе по умолчанию. Это выглядит примерно так:
import os os.startfile(path)
Да, это просто, если вы на Windows. Если вы на Unix или Mac, вам нужен будет модуль запускающий под-процесс или “os.system”. Конечно, если вы крутой компьютерщик (a real geek), и у вас есть несколько программ для одного типа файла. Например, если я хочу редактировать мой файл JPEG с помощью Picasa, Paint Shop Pro, Lightroom, Paint.NET или множеством других программ, и при этом не хочу менять редактор для JPEG, заданный по-умолчанию. Как мы будем решать эту задачу на Python? Мы используем модуль подпроцессы!
import subprocess pdf = "path/to/pdf" acrobatPath = r'C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe' subprocess.Popen("%s %s" % (acrobatPath, pdf))
Вы можете написать последнюю строку как: subprocess.Popen([acrobatPath, pdf]). Существует много способов использовать модуль subprocess, но этот способ основной, для него и создавался модуль. Я обычно использую этот способ для открытия определенных файлов или таким образом открываю программу с нужными для меня параметрами. Кроме этого я использую метод вызова под процессов “call”, он заставляет скрипт на языке Python ждать окончания запущенного приложения. Вы также можете обмениваться информацией с запущенным вами под процессами, если, конечно, знаете как это делать.Заключение
Как обычно, на Python все задачи решаются просто. Я нашел очень не много случаев, когда Python не мог реализовать задачу легко и выразительно. Я надеюсь, что вы найдете данный материал полезным, когда начнете писать на Python и вам понадобиться знать как открыть файл или программу."
Комментариев нет:
Отправить комментарий