Форум сайта python.su
Пролог: Учусь на курсах Интернет-программирование. В программе язык 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)
Офлайн
> В программе язык Piton
Вы форумом ошиблись. На этом форуме обсуждается Python.
Офлайн
lorien“К логопеду, быдло!” (с)
> В программе язык Piton
Вы форумом ошиблись. На этом форуме обсуждается Python.
Офлайн
Вот , доточить и оптимизировать пробуй
#!/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)
Офлайн
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)
Офлайн
Всем искреннее спасибо!!!
Офлайн