Python 使用str.format(name=';text';),意外地添加了一个'\n';最后
我有一个文本文件,我正在逐行阅读和迭代 假设txt文件的内容如下:Python 使用str.format(name=';text';),意外地添加了一个'\n';最后,python,string,format,Python,String,Format,我有一个文本文件,我正在逐行阅读和迭代 假设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
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”。
是这样吗?有没有办法不这样做?使用
output.append(line.format(
name=given_name.strip('\n'),
address=given_address.strip('\n'))
)
要保留
名称
和地址
,而不保留尾随的换行符。您可以使用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())
你的名字是什么?它是否包含
\n
?似乎给定的名称和给定的地址有额外的\n
。。。使用strip()
函数“清理”字符串。。。格式似乎正确,我认为@Daniel是对的,给定的\u名称
和地址
必须在末尾有一个\n
。如何设置?print附加了一个换行符,而给定的_名称已经以一个换行符结尾。您可以使用strip()
(这也会删除前导空格),或者尝试使用,
在行尾添加智能空格。真不敢相信我竟然没想到那件事。非常感谢。Im使用Tkinter制作gui,根据特定输入(票号、业务地址等)自动生成电子邮件。当我在文本框中获取字符串时,我没有意识到它包含一个\n。在读取给定的\u name
时,而不是在使用它时,应该去掉换行符。