Skip to content

Instantly share code, notes, and snippets.

@hodunov
Created August 25, 2021 19:01
Show Gist options
  • Save hodunov/e6eedfa374a9e02016ca4306f515a346 to your computer and use it in GitHub Desktop.
Save hodunov/e6eedfa374a9e02016ca4306f515a346 to your computer and use it in GitHub Desktop.
homework 9
# 1. Написать функцию, которая получает в виде параметра имя файла названия
# интернет доменов (domains.txt)
# и возвращает их в виде списка строк (названия возвращать без точки).
def get_domains(filename):
"""
Функция возвращает название интернет доменов
:param filename: строка с именем файла
:return: список
"""
try:
with open(filename, "r") as file:
return [line.strip()[1:] for line in file.readlines()]
except FileNotFoundError as error:
return f"THIS IS {error}"
print(get_domains("next/domains.txt"))
# 2. Написать функцию, которая получает в виде параметра имя файла (names.txt)
# и возвращает список всех фамилий из него.
# Каждая строка файла содержит номер, фамилию, страну, некоторое число (таблица взята с википедии).
# Разделитель - символ табуляции "\t"
def get_second_names(filename):
# result = []
# with open(filename, 'r') as file:
# for line in file.readlines():
# result.append(line.split('\t')[1])
# return result
with open(filename, "r") as file:
return [line.split("\t")[1] for line in file.readlines()]
# print(get_second_names('names.txt'))
# 3. Написать функцию, которая получает в виде параметра имя файла (authors.txt) и возвращает список
# словарей вида {"date_original": date_original, "date_modified": date_modified}
# в которых date_original - это дата из строки (если есть),
# а date_modified - эта же дата, представленная в формате "dd/mm/yyyy" (d-день, m-месяц, y-год)
# Например [{"date_original": "8th February 1828", "date_modified": 08/02/1828}, ...]
from datetime import datetime
my_month = datetime.strptime("February", "%B").month
date = "26th Feb 1802"
day, month, year = date.split()
res_date = f"{day[:-2]} {month} {year}"
my_date = datetime.strptime(res_date, "%d %b %Y")
my_date = datetime.strftime(my_date, "%d/%m/%Y")
def get_only_dates(filename):
"""
:param filename:
:return:
"""
result = []
with open(filename, "r") as file:
for line in file.readlines():
my_line = line.split(" - ")
if len(my_line) > 1:
date = my_line[0]
day, month, year = date.split()
my_date = datetime.strptime(f"{day[:-2]} {month} {year}", "%d %B %Y")
result.append(
{
"date_original": date,
"date_modified": datetime.strftime(my_date, "%d/%m/%Y"),
}
)
return result
print(get_only_dates("authors.txt"))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment