我有一个文本文件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作为单行并用Ms包裹Msg并转到下一行。
我的新输出看起来像这样:
Msg( "hello"
)
()
Msg( "dfsdkbfsd")
答案 0 :(得分:1)
您可以利用括号始终插入第4位和最后位置的事实,而不是使用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
。
答案 1 :(得分:0)
解决问题的一种方法如下:
with open('testfile.txt', 'r') as f:
for line in f:
newline = line.replace(' "', '("')
newline = newline.replace('\n', ')\n')
print newline
这并不是假设每一行都以Msg开头。