Замените строку подстановочным знаком в файле .txt с помощью Python

Я по-прежнему новичок в написании сценариев и не уверен, что лучший способ выполнить то, что я пытаюсь сделать. Это будет первый скрипт python, который я пытаюсь написать. Обратите внимание, что я использую Python2.7 для этого.

Я хочу написать пакетный файл для пользователя с указанным аргументом. Этот аргумент будет дорогой. Этот путь будет меняться каждый день и использоваться для выполнения тестовых заданий. Я хочу вызвать его с помощью Nightly.bat "build path"

Вот что я хочу сделать:

1. Пакетный файл гарантирует, что путь существует с проверкой работоспособности.
2. Пакетный файл выполняет файл python с заданной переменной.
3. Файл Python находит строку в скрипте testrun с контуром сборки и заменяет этот путь данной переменной.
4.Batch-файл выполняет сценарий selenium testrun.

Вот код Python Code:

Содержимое 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') 

2 Solutions collect form web for “Замените строку подстановочным знаком в файле .txt с помощью Python”

Код должен выглядеть так:

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

Я наконец нашел ответ …

test1.txt перед выполнением Nightly.py:

 blah blah This is a first string blah blah 

Вкладки BTW меняют код с помощью блокнота ++

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

test1.txt после выполнения Nightly.py:

 blah blah This is a second string blah blah 
  • Как установить GDB с поддержкой Python в Windows 7
  • Изменение размера изображения в PIL в Tkinter
  • Разбивка командной строки Python (для «scrapy»)
  • Проблемы с прозрачностью Tkinter
  • Цветная подсказка Python в Windows?
  • Использование функций панели задач Windows 7 в PyQt
  • Установка biopython - python 3.3 не найдена в реестре
  • Ошибка при импорте модуля cx_Oracle
  • Python - лучший язык программирования в мире.