Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 13, 2012 19:19:36

dmitriy-s
Зарегистрирован: 2012-06-13
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите новичку!

Пролог: Учусь на курсах Интернет-программирование. В программе язык Python, котор., как объяснил препод не используется на стороне Клиента, посему нет времени ни сил изучать, ибо я на этой стороне.
Однако нужен зачет, для этого нужно решить дом. задание.
Помогите с готовым ответом!!
Задание №2
Написать следующий скрипт на языке Python. Ключом командной строки “–bad-words” задан список “плохих” слов, разделённых точкой с запятой (. Ключом -f|–file задан проверяемый файл. Написать скрипт, который выводит все строки файла содержащие хотя бы одно плохое слово. Например, так:
> python check_bad_words.py –bad-words error;warning;assert –file test.txt
Bad word “error” was found at line 3: Unknown error occurred
Bad word “warning” was found at line 7: Warning: function printf is deprecated, use printf_s instead

Помогите сдать зачет– буду молиться за Вас!!

Отредактировано dmitriy-s (Июнь 14, 2012 10:45:29)

Офлайн

#2 Июнь 13, 2012 19:56:17

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

Помогите новичку!

> В программе язык Piton
Вы форумом ошиблись. На этом форуме обсуждается Python.

Офлайн

#3 Июнь 14, 2012 10:55:32

asilyator
От:
Зарегистрирован: 2010-10-24
Сообщения: 276
Репутация: +  -2  -
Профиль   Отправить e-mail  

Помогите новичку!

lorien
> В программе язык Piton
Вы форумом ошиблись. На этом форуме обсуждается Python.
“К логопеду, быдло!” (с)



Офлайн

#4 Июнь 14, 2012 15:33:30

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

Помогите новичку!

Вот , доточить и оптимизировать пробуй

#!/usr/bin/python
# -*- coding: utf-8 -*-

import re
from collections import Counter
import sys

bad_sl=sys.argv[1]
txt=sys.argv[2]


content = open('bad.txt', 'r').read().split(' ')
w=bad_sl.split(';')
d=str(' '.join(w))
words = ''

file=open('3.dat','wb')
file.write(str(d))
file.close()

con = open('3.dat', 'r').read().split(' ')

for word in content:
for i in con:
if word==i:
words += i + " "

er=words.split(" ")

cnt = Counter()
for word in er:
cnt[word] += 1
print cnt

Отредактировано sanodin (Июнь 14, 2012 15:43:15)

Офлайн

#5 Июнь 14, 2012 16:30:14

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Помогите новичку!

import argparse
 
 
parser = argparse.ArgumentParser(description='Bad Words Parser')
 
parser.add_argument('-bad-words', dest='bad_words')
parser.add_argument('-f', '-file', dest='file_in')
 
args = parser.parse_args()
 
with open(args.file_in, 'r') as fin:
    for idx, line in enumerate(fin):
        for bad_word in args.bad_words.split(';'):
             
            if bad_word in line:
                print 'Bad word "{0}" was found at line {1}'.format(bad_word, idx)

[17:29] home:~/dev python parse.py -bad-words 'import;bad;add' -f parse.py
Bad word "import" was found at line 1
Bad word "bad" was found at line 6
Bad word "add" was found at line 6
Bad word "add" was found at line 7
Bad word "bad" was found at line 13
Bad word "bad" was found at line 15
Bad word "bad" was found at line 16

Если упорядочивать по словам
...
with open(args.file_in, 'r') as fin:
    appearances = [ (bad_word, idx) for idx, line in enumerate(fin, 1)
                                        for bad_word in args.bad_words.split(';')
                                            if bad_word in line ]
 
    for pair in sorted(appearances):                   
        print 'Bad word "{0}" was found at line {1}'.format(*pair)



Отредактировано fata1ex (Июнь 14, 2012 17:22:26)

Офлайн

#6 Июнь 15, 2012 10:17:55

dmitriy-s
Зарегистрирован: 2012-06-13
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите новичку!

Всем искреннее спасибо!!!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version