Python вміє читати та записувати файли. Для роботи з файлом потрібно його відкрити, попрацювати, закрити.
Режими відкриття:
• 'r' — читання (за замовчуванням)
• 'w' — запис (перезаписує файл)
• 'a' — додавання в кінець
• 'r+' — читання та запис
Рекомендується використовувати with — контекстний менеджер, який автоматично закриває файл:
1with open(&class="hl-comment">#039;файл.txtclass="hl-string">039;, 039;rclass="hl-string">039;, encoding=039;utf-8039;) as f:
2 content = f.read()Методи читання:
• read() — весь вміст
• readline() — один рядок
• readlines() — список рядків
from datetime import datetime
import os
if os.path.exists('diary.txt'):
with open('diary.txt', 'r', encoding='utf-8') as f:
print('Ваш щоденник:')
print(f.read())
entry = input('Новий запис: ')
timestamp = datetime.now().strftime('%Y-%m-%d %H:%M')
with open('diary.txt', 'a', encoding='utf-8') as f:
f.write(f'[{timestamp}] {entry}\n')
print('Запис додано!')
import os
filename = 'notes.txt'
def load_notes():
if not os.path.exists(filename):
return []
with open(filename, 'r', encoding='utf-8') as f:
return [line.strip() for line in f if line.strip()]
def save_note(note):
with open(filename, 'a', encoding='utf-8') as f:
f.write(note + '\n')
while True:
print('\n1-Додати 2-Показати 3-Знайти 4-Вихід')
choice = input('Оберіть: ')
if choice == '1':
note = input('Нотатка: ')
save_note(note)
print('Збережено!')
elif choice == '2':
notes = load_notes()
if not notes:
print('Нотаток немає')
else:
for i, n in enumerate(notes, 1):
print(f'{i}. {n}')
elif choice == '3':
word = input('Шукати: ').lower()
notes = load_notes()
found = [n for n in notes if word in n.lower()]
if found:
for n in found:
print(f' - {n}')
else:
print('Нічого не знайдено')
elif choice == '4':
break
lines = []
print('Введіть текст (порожній рядок — кінець):')
while True:
line = input()
if line == '':
break
lines.append(line)
with open('sample.txt', 'w', encoding='utf-8') as f:
for line in lines:
f.write(line + '\n')
with open('sample.txt', 'r', encoding='utf-8') as f:
text = f.read()
all_lines = text.strip().split('\n')
all_words = text.split()
chars_no_space = len(text.replace(' ', '').replace('\n', ''))
longest = max(all_words, key=len) if all_words else ''
print(f'Рядків: {len(all_lines)}')
print(f'Слів: {len(all_words)}')
print(f'Символів (без пробілів): {chars_no_space}')
print(f'Найдовше слово: "{longest}" ({len(longest)} літер)')