Files & Dirs
Прочитати увесь файл
open / close
конструкція з open - така:
f = open('path_to/file.txt', mode)
text = f.read() # зчитує увесь файл в один великий рядок
f.close()
print(text) # 'first string\nsecond string\nthird string\n...'
with
Відмінність від open()
: з with python самостійно закриває файл, нема необхідності пам’ятати про це. Не викликаються виключення при відкритті файлу (наприклад, якщо файл не існує).
with open('path_to/file', mode) as f:
text = f.read()
readlines
Корисна функція, яка зчитує рядки файлу з \n
в список:
f = open('r1.txt')
str_list1 = f.readlines() # кожний ел-нт списку матиме на кінці '...\n'
str_list2 = reversed(f.readlines()) # або зчитати файл в зворотньому порядку
f.close()
read + split
Якщо потрібно отримати рядки файлу, але без \n
в кінці, можна скористатися методом split і як роздільник вказати символ \n:
f = open('r1.txt')
str_list = f.read().split('\n') # ел-нти списку не матимуть на кінці '\n'
f.close()
modes (режими)
где mode
- режим работы с файлом: 'r'
- read; 'a'
- append; 'w'
- write
'r'
- Открыть файл только для чтения (значение по умолчанию)'w'
- Открыть файл для записи. Если файл существует, то его содержимое удаляется'a'
- Открыть файл для добавления записей. Данные добавляются в конец файла'r+'
- Открыть файл для чтения и записи. Проверь это!если файл существует, то его содержимое удаляется.
если файл не существует - будет вызвано исключение.
'w+'
- открыть файл для чтения и записиесли файл существует, то его содержимое удаляется
если файл не существует, то создается новый
'a+'
- открыть файл для чтения и записи. Данные добавляются в конец файлаесли файл существует, что тут?
если файл не существует, то что тут?
Прочитати файл порядково
f = open('r1.txt')
f.readline() # 'first string\n'
f.readline() # 'second string\n'
f.close()
Але часто нема необхідності у використанні методів read. Напр., цикл for:
f = open('r1.txt')
for line in f:
print(line)
f.close()
Приклад з виключенням
try:
fh = open("testfile", "w")
try:
fh.write("This is my test file for exception handling!!")
finally:
print ("Going to close the file")
fh.close()
except IOError:
print ("Error: can\'t find file or read data")
Робота с двомя файлами одночасно
with open(fname + '.inp') as f_inp:
with open(fname + '.out', 'w') as f_out:
for line in f_inp:
line = re.sub('\s{4}','\t',line)
f_out.write(line)
f_out.close() # з with можна цього не робити
Last updated