Найти - Пользователи
Полная версия: Помогите новичку!
Начало » Python для новичков » Помогите новичку!
1
dmitriy-s
Пролог: Учусь на курсах Интернет-программирование. В программе язык 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

Помогите сдать зачет– буду молиться за Вас!!
lorien
> В программе язык Piton
Вы форумом ошиблись. На этом форуме обсуждается Python.
asilyator
lorien
> В программе язык Piton
Вы форумом ошиблись. На этом форуме обсуждается Python.
“К логопеду, быдло!” (с)
sanodin
Вот , доточить и оптимизировать пробуй
#!/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
fata1ex
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)
dmitriy-s
Всем искреннее спасибо!!!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB