我有一个文本文件,我正在阅读并逐行迭代。
让我们说txt文件是:
hello,
my name is {name}.
my address is {address}.
thank you for listening.
这是我正在使用的代码:
def read_function (given_name, given_address):
output = []
file = open(r"directory\etc..", "r")
for line in file:
output.append(line.format(name=given_name, address=given_address)
print ("".join(output))
我遇到的问题是,当它打印时,它实际上会打印如下:
hello,
my name is Susan
.
my address is 123 mars road
.
thank you for listening.
好像格式化是在命名格式之后添加'\ n'。 这是怎么回事?有没有办法不这样做?
答案 0 :(得分:0)
使用
output.append(line.format(
name=given_name.strip('\n'),
address=given_address.strip('\n'))
)
保持name
和address
不留尾线。
答案 1 :(得分:0)
您可以使用str.rstrip()
从参数字符串中删除尾随空格字符(包括\n
)。此外,您可以使用file.read()
一次读取整个格式字符串来简化功能:
def read_function(given_name, given_address):
with open(r"directory\etc..") as f:
format_str = f.read()
print(format_str.format(name=given_name.rstrip(),
address=given_address.rstrip())