Модификация текстовых документов с помощью Python - PullRequest
2 голосов
/ 13 июля 2011

Допустим, у меня был документ .txt с 1000 именами.Документ будет выглядеть так:

Джон Джейн Джо Джек Джереми

и т. Д.

Теперь, скажем, я хотел добавить "хромает".каждому из имен.Итак, я бы хотел, чтобы список выглядел так:

Джон хромает.Джейн хромаетДжо хромает.Джек хромает.Джереми хромает.

и т. Д.

Как бы я сделал это с python из командной строки?

Ответы [ 5 ]

3 голосов
/ 13 июля 2011

См. http://docs.python.org/tutorial/inputoutput.html#reading-and-writing-files.

В двух словах:

f = open('my_names_file.txt')
data = f.read()
f.close()
output = ""
for name in data.split(' '):       # This assumes each name is separated 
    output += name + " is lame. "  # by a space and no name contains a space
print output

Так же просто записать вывод обратно в файл.Это хорошо объяснено в документации.

1 голос
/ 13 июля 2011
print ' '.join(i + ' is lame.' for i in open(fname).read().split())
0 голосов
/ 13 июля 2011

Ниже приведен очень простой образец:

outputLines = []
with open('c:\\file.txt', 'r') as f:
    for line in f:
        if line.strip():
            outputLines.append(' is lame. '.join(line.strip().split()))
with open('c:\\file.txt', 'w') as f:
    for line in outputLines:
        f.write(line+'\n')
0 голосов
/ 13 июля 2011
>>> s="Jon Jane Joe Jack Jeremy "
>>> s.replace(" ", " is lame. ")
'Jon is lame. Jane is lame. Joe is lame. Jack is lame. Jeremy is lame. '
0 голосов
/ 13 июля 2011

Это не совсем специфично для Python, но вы поняли идею ...

In a loop parsing each token (name):
1.  Get the name into a string
2.  Append "is lame" or whatever else to the string
3.  Append that string onto a buffer

После завершения цикла замените документ новым буфером.

...