如何使用变量 .format 写入文件?
How to write to the file with a variable .format?
我想将两个字符串写入一个文件,中间有可变的空格。这是我写的代码:
width = 6
with open(out_file, 'a') as file:
file.write("{:width}{:width}\n".format('a', 'b'))
但我从中得到 ValueError: Invalid conversion specification
。我希望它在文件中的一行中写入字符 a 和 b,中间有 6 个空格。
我正在使用 python 2.
有点难看,但你可以这样做。使用 {{}}
你可以输入一个文字花括号,这样你就可以用可变宽度格式化你的格式字符串。
width = 6
format_str = "{{:{}}}{{:{}}}\n".format(width, width) #This makes the string "{:width}{:width}" with a variable width.
with open(out_file, a) as file:
file.write(format_str.format('a','b'))
编辑:如果你想将这种类型的可变宽度模式应用到代码中使用的任何模式,你可以使用这个函数:
import re
def variable_width_pattern(source_pattern, width):
regex = r"\{(.*?)\}"
matches = re.findall(regex, source_pattern)
args = ["{{:{}}}".format(width) for x in range(len(matches))]
return source_pattern.format(*args)
我用谷歌搜索了一下,找到了 。通过一些更改,我编写了这段代码,我尝试并获得了您想要的输出:
width = 6
with open(out_file, 'a') as file:
f.write("{1:<{0}}{2}\n".format(width, 'a', 'b'))
一个简单的乘法在这里就可以了
(这里重载了乘法运算符)
width = 6
charector = ' '
with open(out_file, 'a') as file:
file.write('a' + charector * width + 'b')
您需要稍微更改格式字符串并将 width
作为关键字参数传递给 format()
方法:
width = 6
with open(out_file, 'a') as file:
file.write("{:{width}}{:{width}}\n".format('a', 'b', width=width))
之后的文件内容:
a b
我想将两个字符串写入一个文件,中间有可变的空格。这是我写的代码:
width = 6
with open(out_file, 'a') as file:
file.write("{:width}{:width}\n".format('a', 'b'))
但我从中得到 ValueError: Invalid conversion specification
。我希望它在文件中的一行中写入字符 a 和 b,中间有 6 个空格。
我正在使用 python 2.
有点难看,但你可以这样做。使用 {{}}
你可以输入一个文字花括号,这样你就可以用可变宽度格式化你的格式字符串。
width = 6
format_str = "{{:{}}}{{:{}}}\n".format(width, width) #This makes the string "{:width}{:width}" with a variable width.
with open(out_file, a) as file:
file.write(format_str.format('a','b'))
编辑:如果你想将这种类型的可变宽度模式应用到代码中使用的任何模式,你可以使用这个函数:
import re
def variable_width_pattern(source_pattern, width):
regex = r"\{(.*?)\}"
matches = re.findall(regex, source_pattern)
args = ["{{:{}}}".format(width) for x in range(len(matches))]
return source_pattern.format(*args)
我用谷歌搜索了一下,找到了
width = 6
with open(out_file, 'a') as file:
f.write("{1:<{0}}{2}\n".format(width, 'a', 'b'))
一个简单的乘法在这里就可以了 (这里重载了乘法运算符)
width = 6
charector = ' '
with open(out_file, 'a') as file:
file.write('a' + charector * width + 'b')
您需要稍微更改格式字符串并将 width
作为关键字参数传递给 format()
方法:
width = 6
with open(out_file, 'a') as file:
file.write("{:{width}}{:{width}}\n".format('a', 'b', width=width))
之后的文件内容:
a b