#python #python-2.7 #text-mining
#python #python-2.7 #интеллектуальный анализ текста
Вопрос:
Я заполнил файл python следующим образом:
import re
file = open('/Path/text1.txt')
word = 'summer flowers'
try :
flag = 0
for line in file :
lines = line.lower()
x=re.findall('.*' word 's.*',lines)
if len(x)>0:
flag =1
print line
else:
flag = flag
if flag == 0:
print 'No match!'
except:
print 'No enough arguments!'
Я сохранил указанный выше файл py как test1.py . Мой вопрос в том, что: как ввести приведенный выше код в строке cmd?
например, я надеюсь ввести код: » test1.py «летние цветы», text1.txt » в cmd для выполнения приведенного выше кода
где test1.py является именем файла py-файла, «летние цветы» — это ключевое слово, которое я хочу найти и сопоставить в текстовом файле и text1.txt это имя текстового файла.
Комментарии:
1.
python.exe your_file.py 'summer flowers', text1.txt
Вот и все.2. @RedX ваш комментарий предполагает ОС Windows. Это, вероятно, неверно, учитывая путь, который использует OP
Ответ №1:
import re
import sys
file = sys.argv[2]
word = sys.argv[1]
try :
flag = 0
for line in file :
lines = line.lower()
x=re.findall('.*' word 's.*',lines)
if len(x)>0:
flag =1
printline
else:
flag = flag
if flag == 0:
print 'No match!'
except:
print 'No enough arguments!'
Используется sys
для работы с командной строкой. sys.argv
возвращает список аргументов из командной строки, и поскольку вы хотели запустить его в строке cmd python script_name.py keyword filename
, не нужны кавычки для отдельных слов или запятых. Также примечание sys.argv[0]
зарезервировано для имени файла, поэтому sys.argv
возвращается ['script_name.py', 'keyword', 'filename']
, если вы выполнили команду выше.
Редактировать:
Как говорится в комментарии, если вы хотите фразу вместо слова, которое вы можете использовать quotes
в строке commend, так:
python script_name.py "my phrase" filename
вернется в sys.argv
виде ['script_name.py', 'my phrase', 'filename']
Комментарии:
1. Вам нужны кавычки для входной фразы, содержащей пробелы, хотя
2. @cricket_007 Это правда, но поскольку это было ключевое слово, которое он искал, я подумал, что, может быть, подойдет всего одно слово, я отредактирую. Спасибо
3. @Galor Не стесняйтесь принимать любой заданный ответ на этом сайте, когда вы удовлетворены ответом (галочка под оценкой).
Ответ №2:
Использование sys
модуля. В частности, sys.argv
Из документов:
sys.argv
Список аргументов командной строки, переданных скрипту Python. argv[0] — это имя скрипта (зависит от операционной системы, является ли это полным именем пути или нет). Если команда была выполнена с использованием опции командной строки -c для интерпретатора, argv[0] устанавливается в строку ‘-c’. Если имя скрипта не было передано интерпретатору Python, argv[0] является пустой строкой.