Очевидно, что для того, чтобы создать сразу несколько папок с несколькими файлами в них, проще использоват скрипт. Здесь попробуем написать два скрипта, на Питоне... и в командной оболочке Windows.
В предыдущем посте мы окончательно определились со структурой папок. Возьмем вот такую
В предыдущем посте мы окончательно определились со структурой папок. Возьмем вот такую
In []:
# Путь для загрузки файлов с сайта-счетчика
./project/auto/period/month/site/auto.ru/counter/mru/parametrs/2013/Nissan/bymonth-bygender-bypage/
./project/****/period/*****/site/*******/counter/***/parametrs/20**/******/bymonth/
# звездочками обозначены переменные
# в последней секции записаны параметры скачаных файлов (пока их всего три)
In []:
# Путь для загрузки сцепленых файлов (отличается добавкой "_c" к имени проекта)
./project/auto_c/period/month/site/auto.ru/counter/mru/parametrs/2013/Nissan/bymonth-bygender-bypage/
# Для записи сцепленных файлов испоьзуется та же структура папок, что и при загрузке файлов,
# суммарные файлы помещаются в соответствующих папках дублерах
# суммарных файлов может быть несколько (подробности см. ниже)
In []:
# Шаблон для имен файлов
_f_catlogue-nissan_y_2013_m_1-2-3-4_g_m-w_a_18-30-45-60_cm_comment_
# _f_ строка фильтра с заменой "/" на "_"
# _y_ год
# _m_ список месяцев через "-"
# _g_ пол список литералов-строк (m,w)
# _a_ возраст - цифры обозначают верхнюю границу интервала
# _cm_ комментарий - дополнительное поле
# для парсинга подстроки _m_ используется конструкция _m_*_
# длина переменной может изменятся
# порядок переменных важен не всегда
Несколько вариантов суммарных файлов¶
In []:
# Просто состыковали исходные файлы
_f_catlogue-nissan_y_2013_m_1-2-3-4_g_m-w_a_18-30-45-60_cm_raw_
# Состыковали все исходные файлы и добавили столбцы параметров
_f_catlogue-nissan_y_2013_m_1-2-3-4_g_m-w_a_18-30-45-60_cm_comment_
# Распарсили строку URL и добавили справа около десятка столбцов новых параметров
_f_catlogue-nissan_y_2013_m_1-2-3-4_g_m-w_a_18-30-45-60_url-parse_
# Добавили столбцы весов к столбцам параметров (для сравнения разнородных выборок)
_f_catlogue-nissan_y_2013_m_1-2-3-4_g_m-w_a_18-30-45-60_url-parse-weighted_
Выше примеры вариантов. Очевидно, что наиболее используемыми будут второй и третий вариант. Их и возьмем за основу. Взвешиванием займемся позже, а самый первый вариант тоже нежелателен, поскольку добавлять столбцы параметром мы собираемся сразу в процессе состыковки.
Итак, мы (вроде бы) обо всем договорились. Конечно, это не окончательный вариант, но надо начинать пробовать.
Скрипты для создания структуры папок¶
Сначала используем Список команд Windows ( Windows CMD )
In [13]:
!chcp 65001
!mkdir /?
Сначала можно просто создать библиотеку с длинной строкой имени. Все промежуточные библиотеки будут созданы автоматически.
In [9]:
# md = mkdir
!md C:\Users\kiss\Desktop\csv\project\auto_c\period\month\site\auto.ru\counter\mru\parametrs\2013\Nissan\
In [10]:
!dir C:\Users\kiss\Desktop\csv\project\auto_c\period\month\site\auto.ru\counter\mru\parametrs\2013\Nissan\
Позже можно написать простенький .bat файл Командные файлы Windows. Но пока нам достаточно команды dir.
И теперь используем Python (в пути здесь вместо _c )¶
In [15]:
import os
newdir='C:\\Users\\kiss\\Desktop\\csv\\project\\auto\\period\\month\\site\\auto.ru\\counter\\mru\\parametrs\\2013\\Nissan'
if not os.path.exists(newdir):
os.makedirs(newdir)
Как известно, в Python есть бибилиотека os, которая позволяет делать то же самое mkdir -p functionality in python
Кроме того, отметим, что помимо распечатывания директории, мы еще получаем объект списка файлов и подпапок How to list all files of a directory in Python
Кроме того, отметим, что помимо распечатывания директории, мы еще получаем объект списка файлов и подпапок How to list all files of a directory in Python
In [17]:
os.listdir('C:\\Users\\kiss\\Desktop\\csv\\project')
Out[17]:
Мы только что создали всю структуру папок и для скачивания и для итоговых файлов двумя командами. Так что писать скрипты пока незачем.
Посты чуть ниже также могут вас заинтересовать
Комментариев нет:
Отправить комментарий