2016-09-23 7 views
-1

私は文字列test_file1を持っています。ユーザーが入力した文字列が 'test'で始まる場合は、ユーザーから文字列を取得することを確認したい。どのようにこれを行うにはPython? 単語のチェックは特定のアルファベットで始まりますpython

for suite in args: 
      if suite.startswith('test'): 
       suite="hello.tests."+suite 
      print(suite) // prints hello.tests.test_file 
print(args) //prints ['test.file]' and not ['hello.tests.test_file'] 
+0

それが動作するはずです、また、[MCVE]を参照してください – Lafexlos

+2

あなたはあなたのコードを投稿することができますか? – Don

+0

なぜstartswithは動作しませんか?あなたは説明することができます – armak

答えて

0

あなたは正規表現を使用することができます[ 'test_file']引数は=とします。

pat = re.compile(r'^test.*') 

このパターンは、各行のチェックに使用できます。

+0

ドット '.'は' * 'の前に置かなければなりません – Don

+1

あなたは正しいですか – armak

1

は単純に使用します。あなたの場合

String.startswith(str, beg=0,end=len(string)) 

が、それはあなたが新しい作成したスイート名と引数リストにスイートを交換しないでコードを

word.startswith('test', 0, 4) 
+0

この場合、' beg'と 'end'は必要ですか? – Don

+0

@Don:参考:https://www.tutorialsp.com/.com/python/string_startswith.htm –

+0

Thanx!私はそれらのパラメータを知らなかった。しかし 'String.startswith'ではなく' str.startswith'でなければなりません – Don

0

問題になるでしょう。

チェックこのアウト

args = ['test_file'] 
print "Before args are -",args 
for suite in args: 
    #Checks test word 
    if suite.startswith('test'): 
     #If yes, append "hello.tests" 
     new_suite="hello.tests."+suite 
     #Replace it in args list 
     args[args.index(suite)]=new_suite 

print "After args are -",args 

出力:

C:\Users\dinesh_pundkar\Desktop>python c.py 
Before args are - ['test_file'] 
After args are - ['hello.tests.test_file'] 

C:\Users\dinesh_pundkar\Desktop> 

以上もリストの内包表記を使用して実装することができます。

args = ['test_file',"file_test"] 
print "Before args are -",args 

args = ["hello.tests."+suite if suite.startswith('test') else suite for suite in args] 

print "After args are -",args 
関連する問題