Как ввести файл python в cmd?

#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] является пустой строкой.