Например, имеем следующую структуру:
|_ my_file.py
|_ my_package
|_ __init__.py
|_ inside_file.py
В файле inside_file.py определена некая функция foo. Тогда чтобы получить доступ к функции foo, в файле my_file следует выполнить следующий код:
from my_package.inside_file import foo
Так же обратите внимание на наличие внутри директории my_package файла __init__.py. Это может быть пустой файл, который сообщает Python, что данная директория является пакетом модулей. В Python 3.3 и выше включать файл __init__.py в пакет модулей стало необязательно, однако, рекомендуется делать это ради поддержки обратной совместимости.
Работа с файлами в Python
До теперь мы работали только с объектами, сохраненными в оперативной памяти компьютера. То есть после завершения работы программы все наши действия удалялись. Сегодня мы научимся работать с файлами в Python, то есть сохранять состояние программы в файле на жестком диске.
Синтаксис функции open() в Python.
my_file = open(имя_файла [, режим_доступа][, буферизация])
При этом:
имя_файла: строка, содержащая имя файла с расширением. Например, "my_file.txt".
режим_доступа: строка, которой мы указываем для чего открывается файл: для чтения, записи, добавления информации, и т.д. Например, "w". По умолчанию файл открывается для чтения - "r".
буферизация: Челое число. Если значение аргумента указано 0 - файл открывается без буферизации, 1 с построчной буферизацией, больше одного процесс буферизации выполняется с указанным размером буфера. Отрицательное число - разер буфера будет равен системному.
| r | Открывает файл только для чтения. Указатель стоит в начале файла. |
| rb | Открывает файл для чтения в двоичном формате. Указатель стоит в начале файла. |
| r+ | Открывает файл для чтения и записи. Указатель стоит в начале файла. |
| rb+ | Открывает файл для чтения и записи в двоичном формате. Указатель стоит в начале файла. |
| w | Открывает файл только для записи. Указатель стоит в начале файла. Создает файл с именем имя_файла, если такового не существует. |
| wb | Открывает файл для записи в двоичном формате. Указатель стоит в начале файла. Создает файл с именем имя_файла, если такового не существует. |
| w+ | Открывает файл для чтения и записи. Указатель стоит в начале файла. Создает файл с именем имя_файла, если такового не существует. |
| wb+ | Открывает файл для чтения и записи в двоичном формате. Указатель стоит в начале файла. Создает файл с именем имя_файла, если такового не существует. |
| a | Открывает файл для добавления информации в файл. Указатель стоит в конце файла. Создает файл с именем имя_файла, если такового не существует. |
| ab | Открывает файл для добавления в двоичном формате. Указатель стоит в конце файла. Создает файл с именем имя_файла, если такового не существует. |
| a+ | Открывает файл для добавления и чтения. Указатель стоит в конце файла. Создает файл с именем имя_файла, если такового не существует. |
| ab+ | Открывает файл для добавления и чтения в двоичном формате. Указатель стоит в конце файла. Создает файл с именем имя_файла, если такового не существует. |
Как только файл был открыт и у вас появился файловый объект, вы можете получить следующую информацию о нем:
| file.closed | Возвращает True если файл был закрыт. |
| file.mode | Возвращает режим доступа, с которым был открыт файл. |
| file.name | Возвращает имя файла. |
| file.softspace | Возвращает False если при выводе содержимого файла следует отдельно добавлять пробел. |
| my_file
= open("some.txt", "w")
| print ("Имя файла: ", my_file.name)
| print ("Файл закрыт: ", my_file.closed)
| print ("В каком режиме файл открыт: ", my_file.mode)
| print ("Пробелы: ", my_file.softspace)
Python автоматически закрывает файл если файловый объект к которому он привязан присваивается другому файлу. Однако, хорошей практикой будет вручную закрывать файл командой close().
| my_file = open("some.txt")
| print ("Имя файла: ", my_file.name)
| print ("Файл закрыт: ", my_file.closed)
| my_file.close()
| print ("А теперь закрыт: ", my_file.closed)
Метод write() не добавляет символ переноса строки ('\n') в конец файла.
Синтаксис метода write().
| my_file.write(string);
Например:
| my_file = open("some.txt", "w")
| my_file.write("Мне нравится Python!\nЭто классный язык!")
| my_file.close()
Вышеприведенный код создаст файл some.txt и запишет в него указанную строку.
Синтаксис метода read().
| my_file.read([count])
Необязательный параметр count - это количество байт, которые следует прочитать из открытого файла. Этот метод читает информацию с начала файла и, если параметр count не указан, до конца файла.
Например, прочтем созданный нами файл some.txt:
1 | my_file = open("some.txt")
2 | my_string = my_file.read()
3 | print ("Было прочитано:")
4 | print (my_string)
5 | my_file.close()
Например:
| my_file = open("some.txt")