我的代码就是这个。
import fileinput
for line in fileinput.FileInput("aaaa.txt",inplace=1):
map_dict = {'\N':'999999999', '[':'(', '&':'&'}
line = ''.join(map_dict.get(c,c) for c in line)
print line,
我用aaaa.txt进行了实验,但它根本没有替换任何东西。
我知道的更简单的代码是
import fileinput
for line in fileinput.FileInput("aaaa.txt",inplace=1):
line = line.replace("\N","999999999")
print line,
但是我想让第一个代码工作,因为它取代了多个东西。
答案 0 :(得分:2)
\N
是两个字符串。 (与'\\N'
相同)
>>> '\N'
'\\N'
>>> len('\N')
2
但迭代字符串会产生单个字符串。
>>> for ch in 'ab\Ncd':
... print ch
...
a
b
\
N
c
d
代码永远不会替换\
后跟N
。
多次呼叫替换怎么样?
for old, new in map_dict.iteritems():
line = line.replace(old, new)