2016-11-19 5 views
0

pythonプログラムを使用してscript.txtの値を変更しようとしました。テキスト変更関数が実行されない

だから、次の関数は、その作業を行いますxyを例"2""3"ため、すなわち数字を引用しなければならない

​​3210

。 私はxyの多くの値をループを作成する必要がありますので、以下のように、私が引用された番号のリストを作成しました:

def quotes(x): 
    Q = '"%s"'%x 
    return Q; 

SS = list(); 
QS = list(); 

for i in range(4): 
    SS.append(i) 

for j in SS: 
    i = quotes(j) 
    QS.append(i) 

しかし、私は次のように機能textx()を実行しよう:

textx(QS[0], QS[3]) 

プログラムはエラーなしで実行されますが、ファイルでは、0の値が3に変更されますが、これは起こりません。では、text関数をQSリストの要素で正しく実行させるにはどうしたらいいですか?

+0

私はそれを正しく理解している場合を見てみましょう:あなたは、テキストファイル内の '3'、正しいと '0'すべてを交換したいですか? –

+0

Hi Hai Vu、この場合はyesですが、リストQSを使用してこれを行う必要があります。実際のコードでは複雑な数字のリストが多くなり、コード全体では1つの数字だけが変更されます。 –

+0

追加したばかりの ';'文字は必要ありません。 – martineau

答えて

0

あなたはQSリストに入れた文字列が 2倍が含まれているため、問題はおそらくですが、文字"を引用するので、文字列replace()メソッドの呼び出しが失敗し、何もしません。

あなたがquotes()機能を変更する場合:

def quotes(x): 
    Q = '%s' % x 
    return Q 

それは、その後、動作するはずです。また、あなただけの(新しいリストをnew_list命名されたと仮定した場合)、このワンライナーでtextx()機能を駆動するのに必要な1つのリストを作成することができますので、あなたが本当に別のSSQSリストを持っている必要はありません意味:

new_list = [str(i) for i in range(4)] 

QSの代わりに使用してtextx()を呼び出します。言い換えれば

textx(new_list[0], new_list[3]) 
関連する問題