我有一个文本文件testfile.txt,文件内容(输入)如下所示:
Msg "how are you"
Msg "Subtraction is", 10-9
输出应该如下所示,
Msg("how are you")
Msg("Subtraction is", 10-9)
我按如下方式打开文件,
fileopening = open('testfile.txt', 'r')
fileopening.readline()
for line in fileopening:
print line.replace(' "', '(')
for line in fileopening:
print line.replace('"', ')')
但是上面的代码实际上改变了以前转换的空间和引号。如何实现这一点,使其看起来像上面所示的期望输出?我想把Msg作为一行,用()包装Msg,然后转到下一行。
我的新输出如下所示:
Msg( "hello"
)
()
Msg( "dfsdkbfsd")
发布于 2014-09-17 01:35:53
不使用replace
,您可以利用这样一个事实:括号总是插入在第四个位置和最后一个位置:
with open('testfile.txt', 'r') as fileopening:
next(fileopening)
for line in fileopening:
line = line.rstrip()
print('{}({})'.format(line[:3], line[4:]))
顺便说一句,由于您使用的是Python3,请注意print
是一个函数,因此它的参数必须被括号包围。使用不带括号的print
将引发SyntaxErrors
。
发布于 2014-09-17 01:43:44
解决这一问题的一个办法是:
with open('testfile.txt', 'r') as f:
for line in f:
newline = line.replace(' "', '("')
newline = newline.replace('\n', ')\n')
print newline
这并不是假设每一行都以Msg开头。
https://stackoverflow.com/questions/25880895
复制相似问题