Вход | Регистрация

Информационные технологии :: Математика и алгоритмы

Python. Реализация механизмов cat * и awk

Python. Реализация механизмов cat * и awk
Я
   xXeNoNx
 
12.09.18 - 11:20
Всем привет!
Осваиваю данный язык. Появились некоторые вопросы:
1. Как реализовать аналог команды cat *? - чтение файлов(НЕСКОЛЬКИХ!!!) в текущей директории по шаблону?
2. Как сделать свертку входных данных, аналогично как делает это awk:
вход:
1 - 10
2 - 5
3 - 5
2 - 10
1 - 20

ВЫХОД:
1 - 30
2 - 15
3 - 5

Спасибо за ответы!
 
 
   Кирпич
 
1 - 12.09.18 - 11:25
форумом ошибся
   xXeNoNx
 
2 - 12.09.18 - 11:26
(1) утверждение не вдохновляет!
   xXeNoNx
 
3 - 12.09.18 - 11:27
+(2) Особенно после этого Вопрос к знатокам Си++ (Си)
   Кирпич
 
4 - 12.09.18 - 11:28
(3) ну вот учись на чужих ошибках

https://www.ibm.com/developerworks/ru/library/l-python_part_8/
   Вафель
 
5 - 12.09.18 - 11:28
а что в питоне нет findFiles или аналога?
   xXeNoNx
 
6 - 12.09.18 - 11:30
(5) хотелось бы лакончино), как cat, ну или хотя бы "open('регулярка')"
   Кирпич
 
7 - 12.09.18 - 11:30
(5) да есть там всё. просто лень гуглить
   Кирпич
 
8 - 12.09.18 - 11:32
Вот из (4)

В следующем примере сделана интерпретация системной утилиты grep. В текущем каталоге будут найдены файлы с питоновским расширением, в которых будет найдена поисковая строка 'import os':


import os, sys, fnmatch

mask = '*.py'
pattern = 'import os'

def walk(arg,dir,files):
   for file in files:
     if fnmatch.fnmatch(file,mask):
        name = os.path.join(dir,file)
        try:
          data = open(name,'rb').read()
          if data.find(pattern) != -1:
            print name
        except:
            pass    
os.path.walk('.',walk,[])
   xXeNoNx
 
9 - 12.09.18 - 11:39
(8) пасиб
   Вафель
 
10 - 12.09.18 - 11:41
(8) хреновый конечно код.
поиск файлов лучше сразу по маске делать,сами файлы обрабатывать построчно
 
 Рекламное место пустует
   Кирпич
 
11 - 12.09.18 - 11:43
(9) А для всяких извращений с данными вот такое там придумано https://khashtamov.com/ru/pandas-introduction/
   Кирпич
 
12 - 12.09.18 - 11:45
   Кирпич
 
13 - 12.09.18 - 11:45
короче полный гугл
   Glup0sti
 
14 - 12.09.18 - 12:00
cat *.txt | gawk -F'-' '{D[$1]+=$2} END {for(i in D) print i":"D[i]}'
   Glup0sti
 
15 - 12.09.18 - 12:05
ой, вообще ересь написал не в тему

Список тем форума
Рекламное место пустует  Рекламное место пустует
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки - вот настоящая работа.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует