Что такое функция замены в Python - PullRequest
2 голосов
/ 17 июня 2010

Я хочу написать код Python, который откроет текстовый файл и заменит слово, которое я хочу отправить ему.Можете ли вы дать мне пример?Благодарю .

Ответы [ 5 ]

2 голосов
/ 18 июня 2010

удивился, что MarteliBot еще не ответил :-) (я узнал о fileinput от него здесь в какой-то другой ветке) - так что вы можете сделать следующее:

import fileinput
for line in fileinput.input('somefile.txt', inplace=1):
    print line.replace('OldWord', 'NewWord'),

пс.это фактически перенаправляет стандартный вывод в тот же файл безопасным способом (т.е. записывает в tempfile, а затем переименовывает и т. д.).разве это не красиво?

1 голос
/ 17 июня 2010

Есть много способов сделать это, но обязательно посмотрите Строки шаблона , чтобы увидеть, подходят ли они для вашего приложения.

Из документации:

>>> from string import Template
>>> s = Template('$who likes $what')
>>> s.substitute(who='tim', what='kung pao')
'tim likes kung pao'
>>> d = dict(who='tim')
>>> Template('Give $who $100').substitute(d)
Traceback (most recent call last):
[...]
ValueError: Invalid placeholder in string: line 1, col 10
>>> Template('$who likes $what').substitute(d)
Traceback (most recent call last):
[...]
KeyError: 'what'
>>> Template('$who likes $what').safe_substitute(d)
'tim likes $what'
0 голосов
/ 18 июня 2010
sed s/oldword/newword/g originalfile.txt > fixedfile.txt

: -)

0 голосов
/ 17 июня 2010

Вы можете сделать это, используя с-оператором :

PATH = "/home/Eva/test.txt"

with open(PATH) as f: # read the file content
    content = f.read()

with open(PATH, "w+") as f: # w+ stands for (re)write
    content = content.replace("abc", "test")
    f.write(content)

( abc - это старый текст, тест новый текст, который заменит старый)

Подробнее о файлах можно прочитать здесь . Я надеюсь, что это поможет вам.

0 голосов
/ 17 июня 2010

Это может быть так просто:

data = open('input_file').read()
open('output_file', 'w').write(data.replace('old_word', 'new_word'))

Более чистая версия:

fh = open('input_file')
data = fh.read()
fh.close()

data = data.replace('old_word', 'new_word')

fh = open('output_file', 'w')
fh.write(data)
fh.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...