Форум сайта python.su
Друзья, нужна ваша помощь. Дали мне задание написать скрипт на Python`е. Я немного писал на bash, но в любом случае я не капли не программист. Изучаю, но пока дается все со скрипом.
1. Есть каталоги пользователей /home/ftp/users/*/ В них могут появляться файлы с окончанием .file
2. Нужно пройти эти каталоги, отыскать эти файлы.
3. Затем парсить каждый из их по ключевому слову “image”
4. И вывести список файлов на экран в виде нумерованного списка + напротив имени некотрые параметры которые следуют за словом image.
Наверняка для опытного программиста это задача не представляет сложности. Поможете?
Офлайн
endy1Понятие “помощь” подразумевает активное участие нуждающегося в помощи.
Поможете?
Офлайн
Да, ув. FishHook. Вы правы. Может быть найдется человек, который поможет написать эти 6-7 строчек кода.
Собственно обход каталогов у меня получилось сделать. И даже парсится текст из файлов. Но выводится весь текст, а мне нужно, чтобы только то, что в паттерне.
#!/usr/bin/env python import glob import sys import re path = '/opt/sftp/users/*/*.request' pattern = 'image_file' files=glob.glob(path) for file in files: f=open(file, 'r') a = sys.stdout.write(f.read()) f.close()
Отредактировано endy1 (Окт. 1, 2015 11:36:34)
Офлайн
>>> def search_files(path, pat): ... return ['a.txt', 'b.txt'] ... >>> def parse_files(seq): ... return map(get_info, seq) ... >>> def get_info(fname): ... return fname + ' info' ... >>> def print_table(seq): ... for n, (c1, c2) in enumerate(seq, 1): ... print('{:03} {} <{}>'.format(n, c1, c2)) ... >>> def f(): ... dirpath = '/path' ... pattern = 'pattern' ... ... files = search_files(dirpath, pattern) ... infos = parse_files(files) ... print_table(zip(files, infos)) ... >>> f() 001 a.txt <a.txt info> 002 b.txt <b.txt info> >>>
Офлайн