1

私はまだスクリプトを作成するのが初めてで、やろうとしていることを達成するための最良の方法がわかりません。これは、私が書こうとしている最初の Python スクリプトになります。これにはPython2.7を使用していることに注意してください。

引数を指定してユーザー用のバッチ ファイルを作成したいと考えています。この引数はパスになります。このパスは毎日変更され、ジョブ テストの実行に使用されます。で呼び出したいNightly.bat "build path"

これが私が達成したいことです:

1. バッチ ファイルは、ヘルス チェックでパスが存在することを確認します。
2. バッチ ファイルは、指定された変数を使用して Python ファイルを実行します。
3. Python ファイルは、testrun スクリプト内でビルド パスを含む文字列を検出し、そのパスを指定された変数に置き換えます。
4.バッチファイルは、testrun selenium スクリプトを実行します。

コードPythonコードは次のとおりです。

test1.txt の内容:

blah
This is a first string

nightly.py の内容:

import sys
import shutil
import os
import re

tf = open('tmp', 'a+')
string = "This is "

with open('test1.txt') as f:
    for line in f.readlines():
            string = re.sub ('This is .*', 'This is a second string', string)

shutil.copy('test1.txt', 'tmp')
tf.write(string)
f.close()
tf.close()

nightly.py ファイルを実行した後の tmp ファイルの内容は次のとおりです。

blah
This is a first stringThis is a second String

私はそれを作る必要があるので、This is a first stringに置き換えられますThis is a second string

最終的に、tmp ファイルには次の内容が含まれている必要があります。

blah
This is a second string

引き続きお試しいただきありがとうございます。

*****************************
* Updated for Kirbyfan64sos *
*****************************

nightly.py の内容:

import sys
import shutil
import os

tf = open('tmp', 'a+')
with open('test1.txt') as f:
    for line in f.readlines():
        if line == 'This is*':
            line = 'This is a second string' 
        tf.write(line)
f.close()
tf.close()
shutil.copy('tmp', 'test1.txt')
os.remove('tmp')
4

3 に答える 3

1

私はついに答えを見つけました...

Nightly.py 実行前の test1.txt:

blah
blah
This is a first string
blah
blah

ところで、タブはメモ帳++でコードに違いをもたらします

import sys
import os
import re
import shutil

tf = open('tmp', 'a+')

with open('test1.txt') as f:
    for line in f.readlines():
        build = re.sub ('This is.*','This is a second string',line)
        tf.write(build)
tf.close()
f.close()
shutil.copy('tmp', 'test1.txt')
os.remove('tmp')

Nightly.py 実行後の test1.txt:

blah
blah
This is a second string
blah
blah
于 2013-04-12T05:50:10.890 に答える