Импорт строк из .txt и поиск первого числового символа - python - PullRequest
0 голосов
/ 02 июня 2011

Я полный нуб с питоном (программирование на самом деле), но я надеюсь, что вы можете помочь:)

У меня есть файл .txt со списком строк, содержащих адреса.

Я хочу импортировать его в Python, а затем найти первый числовой символ, а затем создать для него новый столбец ... как

ввод

'Elm Street 12' 
'Baker Street 143'

и вывод

'Elm Street 12' , 12
'Baker Street 143' , 14

и сохраните его в .txt.

Я пытаюсь сделать, если из окна cmd.

Заранее спасибо.

Ответы [ 4 ]

0 голосов
/ 02 июня 2011
import re
regx = re.compile("^('.+ (\d+)')",re.MULTILINE)

with open('Copie de fileinput.txt','r+') as f:
    mod = regx.sub('\\1 , \\2',f.read())
    f.seek(0,0)
    f.write(mod)

Обратите внимание, что я понял, что в файле есть кавычки. Я сомневаюсь в этом, но ваш вывод содержит кавычки, так что мое регулярное выражение имеет кавычки .... Вы удалите thgem, если на самом деле нет кавычек

Вместо записи данных в плоский файл, вам лучше использовать модуль рассола

0 голосов
/ 02 июня 2011

Вы, вероятно, хотите использовать dict. Выполните цикл и используйте re, чтобы найти свои числовые символы, используйте их в качестве ключа в поле ввода каждой строки. Если вы ожидаете иметь дубликаты.

import re
results = {}
for s in ['Elm Street 12', 'Baker Street 143']:
    match = re.search(r'\d+', s)
    if match:
        results[match.group()] = s

>>> results
<<< {'12': 'Elm Street 12', '143': 'Baker Street 143'}
0 голосов
/ 02 июня 2011

Это может быть то, что вы ищете

import re

input = '''Elm Street 12
Baker Street 143'''
output = ""

rows = input.split("\n")
for row in rows:
    m = re.search(r'\d+', row)
    output += "{0} {1}\n".format(row, m.group())

print output
0 голосов
/ 02 июня 2011
with open('file.txt') as inn:
    for line in inn:
        print "%s %s" % (line, [int(item) for item in line.split(' ') if item.isdigit()])
...