python_for_analytics
/
1.5_HW_file_system.ipynb
89 строк · 4.8 Кб
1{
2"cells": [
3{
4"cell_type": "markdown",
5"id": "62678eff",
6"metadata": {},
7"source": [
8"## 5. Работа с файловой системой и модули\n",
9"\n",
10"1. Переведите содержимое файла purchase_log.txt в словарь purchases вида: {‘1840e0b9d4’: ‘Продукты’, …}\n",
11"\n",
12"2. Для каждого user_id в файле visit_log.csv определите третий столбец с категорией покупки (если покупка была, сам файл visit_log.csv изменять не надо). Запишите в файл funnel.csv визиты из файла visit_log.csv, в которых были покупки с указанием категории.\n",
13"\n",
14"Учтите условия на данные:\n",
15"\n",
16"содержимое purchase_log.txt помещается в оперативную память компьютера содержимое visit_log.csv - нет; используйте только построчную обработку этого файла\n",
17"\n",
18"## 5. Working with the file system and modules\n",
19"\n",
20"1. Translate the contents of the file purchase_log.txt in the dictionary purchases of the form: {‘1840e0b9d4’: ‘Products', ...}\n",
21"\n",
22"2. For each user_id in the visit_log.csv file, define the third column with the purchase category (if there was a purchase, the visit_log.csv file itself does not need to be changed). Write down in the funnel.csv file the visits from the visit_log.csv file, in which there were purchases indicating the category.\n",
23"\n",
24"Take into account the conditions for the data:\n",
25"\n",
26"content purchase_log.txt the contents of visit_log.csv are placed in the computer's RAM - no; use only line-by-line processing of this file"
27]
28},
29{
30"cell_type": "code",
31"execution_count": 1,
32"id": "8f6dbfcc",
33"metadata": {},
34"outputs": [],
35"source": [
36"with open('purchase_log.txt','r', encoding='utf-8') as log: #откроем файл в необходимой кодировке\n",
37" import json #импортируем библиотеку\n",
38" new_log = [] #создадим пустой список\n",
39" for line in log: #переберём строки в нашем файле\n",
40" line = line.strip() #применим метод strip для удаления начальных и конечных символов\n",
41" jsoned_log = json.loads(line) #приведём наши строки к Python-формату\n",
42" new_log.append(jsoned_log) #добавим в пустой список new_log приведённые строки\n",
43" log.close() #закроем наш файл, так как мы извлекли из него всё необходимое и он нам больше не нужен\n",
44"purchases_dictionary = {} #создадим пустой словарь (находиться в оперативной памяти)\n",
45"for logs in new_log:\n",
46" purchases_dictionary[logs['user_id']] = logs['category'] #наполним наш словарь извлечёнными данными\n",
47"\n",
48"with open('visit_log.csv', 'r', encoding='utf-8') as visit: #откроем наш файл для чтения\n",
49" with open('funnel.csv', 'w', encoding='utf-8') as funnel: #создадим новый файл funnel.csv\n",
50" for line in visit: #переберём строки в нашем файле\n",
51" line = line.strip().split(',') #применим методы strip и split, разбив по запятым на подстроки\n",
52" if line[0] in purchases_dictionary.keys(): #если user_id в наших сущностях совпадают\n",
53" line.append(purchases_dictionary[line[0]]) #соединим наши сущности исключая user_id\n",
54" funnel.write(','.join(line)+\"\\n\") #запишем наши данные в файл funnel.csv применив метод join\n",
55" visit.close() #закрываем файлы\n",
56" funnel.close()"
57]
58},
59{
60"cell_type": "markdown",
61"id": "0c21f6c4",
62"metadata": {},
63"source": [
64"![](Python_logo.png)"
65]
66}
67],
68"metadata": {
69"kernelspec": {
70"display_name": "Python 3 (ipykernel)",
71"language": "python",
72"name": "python3"
73},
74"language_info": {
75"codemirror_mode": {
76"name": "ipython",
77"version": 3
78},
79"file_extension": ".py",
80"mimetype": "text/x-python",
81"name": "python",
82"nbconvert_exporter": "python",
83"pygments_lexer": "ipython3",
84"version": "3.9.13"
85}
86},
87"nbformat": 4,
88"nbformat_minor": 5
89}
90