2011-06-02 140 views
0

我与蟒蛇总小白(其实编程),但我希望你能帮助:)导入字符串 - 蟒蛇

我有一个列表的.txt文件包含地址的字符串

我想将它导入到Python,然后搜索第一个数字小字符,然后为它创建一个新的列...像

输入

'Elm Street 12' 
'Baker Street 143' 

和输出

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

并将其保存为.txt。

我想要做的,如果从Windows CMD。

预先感谢您。

回答

0
with open('file.txt') as inn: 
    for line in inn: 
     print "%s %s" % (line, [int(item) for item in line.split(' ') if item.isdigit()]) 
+0

嗨雅各布,我得到无效的语法 - %s“ – 2011-06-02 14:45:41

+0

我的错误现在纠正 – 2011-06-02 14:51:40

0

您可能想要使用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

为什么使用RE,你真的不需要它吗? – 2011-06-02 14:45:31

+0

比根据地址的格式更安全。 – zeekay 2011-06-02 14:55:59

0

这可能是你在找什么

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

注意,我了解,有在文件中引号“。我怀疑这一点,但你的输出有引号,所以我的正则表达式有引号....如果实际上没有引号,你将删除三角形

在平面文件中记录数据的互动,你应该更好地使用腌菜模块