2016-10-06 7 views
0

私は次のようにPYファイルを完了している:pythonファイルをcmdに入力する方法は?

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!' 

私はtest1.pyとしてPYファイル上に保存されています。私の質問は、次のとおりです。上記のコードをcmd行にどのように入力するのですか?

test1.pyがPYファイルのファイル名です

、「夏のコード上で実行するCMDに 「test1.py 『夏の花』、text1.txt」 :私は入力にコードを願っていますflowers 'はtxtファイルで検索して一致させたいキーワード、text1.txtはtxtファイル名です。

+0

'python.exe your_file.py 'summer flowers'、text1.txt'それです。 – RedX

+0

@RedXあなたのコメントは、Windows OSを前提としています。 OPが使用しているパスを考慮すると、おそらく正しくないでしょう –

答えて

2
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を使用することができます単語のフレーズをしたい場合は言う:

python script_name.py "my phrase" filename

['script_name.py', 'my phrase', 'filename']

として sys.argvに戻ります
+1

スペースを含む入力句には引用符が必要ですが、 –

+0

@ cricket_007それはキーワードだったので、私はおそらく単語が1つしかないと思いました私は編集します。おかげで – MooingRawr

+0

ありがとう! – Galor

0

sysモジュールの使用。具体的には、ドキュメントからsys.argv

sys.argvの

Pythonスクリプトに渡されたコマンドライン引数のリスト。 argv [0]はスクリプト名です(これがフルパス名であるかどうかはオペレーティングシステムによって異なります)。コマンドがインタプリタに対して-cコマンドラインオプションを使用して実行された場合、argv [0]は文字列 '-c'に設定されます。スクリプト名がPythonインタプリタに渡されなかった場合、argv [0]は空文字列です。

関連する問題