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

代码应如下所示:

import sys
tf = open('tmp', 'a+')
with open('WP8974_AudioDecode.html') as f:
    for line in f.readlines() do:
        if line == '<td>\\frosty\*</td>':
            line = '<td>\\frosty\' + sys.argv[1] + '</td>' 
        tf.write(line)
f.close()
shutil.copy('tmp', 'WP8974_AudioDecode.html')
os.remove('tmp')
于 2013-04-07T19:48:01.727 回答
1

我终于找到了答案...

在 Nightly.py 执行之前的 test1.txt:

blah
blah
This is a first string
blah
blah

顺便说一句,标签在 notepad++ 的代码中有所不同

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 回答
0

我的方法如下,它对有问题的文件进行操作,而无需复制/复制文件:

import re

with open('target_file.txt', 'r') as file: 
    filedata = file.read()

filedata = re.sub('This is.*', 'This is the second string', filedata)

with open('target_file.txt', 'w') as file:
    file.write(filedata)
于 2022-01-18T17:18:47.560 回答