Оглавление

Этапы работы с файлом:

Режимы доступа к файлу

Важно!

Обязательный шаг — закрытие файла.

Чтение из файла

Построчное чтение

Запись в файл

Оператор контекста with

Модуль os - модуль для работы с операционной системой и ее элементами

Переименование файла

Мзменение текущей дирректории

Возврат в предыдущую дирректорию

Создание нескольких вложенных папок

Перемещение файлов

Cписок всех файлов и папок в дирректории

Удаление файлов и папок

Удаление директорий

Этапы работы с файлом:

1) открытие файла

2) работа с содержимым файла

3) закрытие файла


                    
Открытие файла

f = open('имя_файла', 'режим_доступа')
                

Режимы доступа к файлу

'r' — Только для чтения.

'w' — Только для записи. Создаст новый файл, если не найдет с указанным именем.

'r+' — Для чтения и записи.

'w+' — Для чтения и записи. Создаст новый файл для записи, если не найдет с указанным именем.

'a' — Откроет для добавления нового содержимого. Создаст новый файл для записи, если не найдет с указанным именем.

'a+' — Откроет для добавления нового содержимого. Создаст новый файл для чтения и записи, если не найдет с указанным


                    
f1 = open('books.txt','r')  # открыть файл из рабочей директории в режиме чтения
f2 = open('C:/Users/xsale/Desktop/ранх2/books.txt','r')  # открыть файл из любого каталога
                

Важно!

1) Не забыть расширение файла

2) Убедиться, что при создании файла вручную Вы не написали расширение лишний раз (если операционная система их скрывает) text.txt.txt

3) Проверить, какой слеш (/) стоит при написании пути к файлу

4) Рабочая дирректория - обычно та, в которую сохранен файл с кодом программы


                    
# описание данного файла, как объекта
print(f1)
<_io.TextIOWrapper name='books.txt' mode='r' encoding='cp1251'>
                

                    
# вывод всего содержимого файла
print(*f1)

                

Aprile A, Gulino A, Storto M, Villa I, Beretta S, Merelli I, et al. Hematopoietic stem cell function in ОІ-thalassemia is impaired and is rescued by targeting the bone marrow niche. Blood [Internet]. 2020;

Обязательный шаг — закрытие файла.


                    
f1.close()
f2.close()
                

Чтение из файла


                    
.read() - чтение содержимого файла после открытия его в режиме чтения (r)

.read(N) -  чтение первых N символов из файла
                

1. Aprile A, Gulino A, Storto M, Villa I, Beretta S, Merelli I, et al. Hematopoietic stem cell function in ОІ-thalassemia is ...


                    
# открыли файл и читаем все содержимое в одну строковую переменную
file = open('books.txt','r')
s = file.read()
print(s)

file.close()
                

'1. Aprile A'


                    
# открыли файл и читаем первые 11 символов
file = open('books.txt','r')
s = file.read(11)
s
                

', Gulino A,'


                    
# продолжение чтения (не начинается с начала файла)
s2 = file.read(11)
s2
                

Построчное чтение


                    
.readline() - чтение строки файла

.readline(N) - чтение первых N символов из строки (или столько символов, сколько в ней есть)
(следующую строку не трогает)

.readlines() - чтение всех строк их файла (в список строк)
                

                    
file = open('books.txt','r')
s = file.readline()
s

s = file.readline(12)
s
'2. Wadhera R'
                

Получение списка строк файла


                    
file = open('books.txt','r')
strings = file.readlines()
file.close()
strings
                

['1. Aprile A, Gulino A, Storto M, Villa I, Beretta S, Merelli I, et al. Hematopoietic stem cell function in ОІ-thalassemia is impaired and is rescued by targeting the bone marrow niche. Blood [Internet]. 2020;\n', '2. Wadhera RK, Wadhera P, Gaba P, et al. Variation in COVID-19 hospitalizations and deaths across New York City boroughs. JAMA. 2020. doi:10.1001/jama.2020//7197\n',]

Построчная обработка содержимого файла


                    
file = open('books.txt','r')
for line in file.readlines():
    print(repr(line)) # не преобразует строку
    #print(line)

file.close()
                

'1. Aprile A, Gulino A, Storto M, Villa I, Beretta S, Merelli I, et al. Hematopoietic stem cell function in ОІ-thalassemia is impaired and is rescued by targeting the bone marrow niche. Blood [Internet]. 2020;\n'

'2. Wadhera RK, Wadhera P, Gaba P, et al. Variation in COVID-19 hospitalizations and deaths across New York City boroughs. JAMA. 2020. doi:10.1001/jama.2020//7197\n'

Запись в файл

открытие файла на запись


                    
.write(что_записать)

f = open('C:/Users/xsale/Desktop/ранх2/books2.txt','w')
                

Запись строки в файл


                    
f.write('hello\nworld')
f.write('11\n22')
# пока файл открыт в Python, его изменения не отображаются в самом файле
                

Оператор контекста with


                    
with выражение as переменная:
    что делать дальше
    
with выражение1 as переменная1, выражение2 as переменная2:
    что делать дальше    
                

Под капотом происходит последовательный вызов нескольких методов Возвращаемое значение записывается в переменную Не важно, выполнилось ли действие или произошло исключение Выполняет критические действия самостоятельно (напр., файл всегда будет закрыт)


                    
with open('text3.txt', 'w') as file:
    text = 'hello world'
    file.write(text)
                

Модуль os - модуль для работы с операционной системой и ее элементами


                    
os.getcwd() - Вывод текущей директории


                

Переименование файла


                    
os.rename(старое_название, новое_название)
os.rename('to_rename_1.txt','to_rename_222.txt')
Главное, чтобы все файловые потоки были закрыты
                

Главное, чтобы все файловые потоки были закрыты


                    

                

Создание папки


                    
os.mkdir("имя_папки")
                

После запуска в рабочем каталоге появится папка с указанным именем


                    
os.path.isdir("имя_папки") - вернет True, если указанная папка существует
                

Мзменение текущей дирректории


                    
os.chdir("новое_место")
os.chdir("new_folder")
print("Текущая директория:", os.getcwd())

                

                    os.chdir("new_folder")
print("Текущая директория:", os.getcwd())
Текущая директория: C:\Users\xsale\Desktop\ранх2\new_folder
                

Возврат в предыдущую дирректорию


                    
os.chdir("..")
print("Текущая директория:", os.getcwd())
Текущая директория: C:\Users\xsale\Desktop\ранх2
                

Создание нескольких вложенных папок


                    
os.makedirs("папка_1/папка_2/папка_3/папка_4")
                

Перемещение файлов


                    
os.replace("файл_сейчас","где_должен_быть") - 
                

Cписок всех файлов и папок в дирректории


                    
os.listdir()

dirs = os.listdir()
for i in dirs:
    print(i)
                

Удаление файлов и папок

Удаление происходит безвозвратно (минуя корзину)


                    
os.remove("файл_для_удаления") - удаление файла

                

Удаление директорий


                    
os.rmdir(имя_дирректории)
                

Удаление в корзину


                    
#pip install send2trash
from send2trash import send2trash

send2trash("new_2.txt")
                
© 2023 Все права защищены