使用Python3.x添加特定大小的列

使用Python3.x添加特定大小的列,python,python-3.x,file,formatting,Python,Python 3.x,File,Formatting,有没有办法使用python在文件中添加每个字段占用特定大小的新记录?如下图所示,共有8列 [列编号:列字节]->[1:20,2:10,3:10,4:39,6:2,7:7,8:7]每种大小不同。例如,如果第一列值为20字节“abbsbt”,则根据用户输入,它可以包含10,5个字节,也可以占用整个20个字节。 在C语言中,我们可以在变量初始化期间指定字节大小。 如何为每列添加具有适当固定间距的新记录 提前谢谢你 之前,您可以使用Python格式化字符串。比如: line_format = '{:2

有没有办法使用python在文件中添加每个字段占用特定大小的新记录?如下图所示,共有8列
[列编号:列字节]->[1:20,2:10,3:10,4:39,6:2,7:7,8:7]
每种大小不同。例如,如果第一列值为20字节“abbsbt”,则根据用户输入,它可以包含10,5个字节,也可以占用整个20个字节。 在C语言中,我们可以在变量初始化期间指定字节大小。 如何为每列添加具有适当固定间距的新记录

提前谢谢你

之前,您可以使用Python格式化字符串。比如:

line_format = '{:20}{:10}{:10}{:39}{:2}{:7}{:7}\n'

with open('existing_file', 'a') as f:
    f.write(line_format.format('ABBSBABBSBT', 'JP000', 'XYZABC', 'JPJPYJAP', 0, 'YYSGB', '00NABCD'))
除了许多其他有用的选项外,您还可以使用上述语法来指定最大宽度和对齐方式。

您可以在设置字符串格式之前使用Python。比如:

line_format = '{:20}{:10}{:10}{:39}{:2}{:7}{:7}\n'

with open('existing_file', 'a') as f:
    f.write(line_format.format('ABBSBABBSBT', 'JP000', 'XYZABC', 'JPJPYJAP', 0, 'YYSGB', '00NABCD'))
除了许多其他有用的选项之外,您还可以使用上面提到的语法来指定最大宽度和对齐方式。

您也可以使用自Python3.6以来提供的语法来实现此目的

你可以像这样写f字串

out_str = f"{col1:20}{col2:10}{col3:39}{col4:2}{col5:1}{col6:2}{col7:7}{col8:7}")
到文件中

col1
col1
col1
等都是具有列值的变量。替换变量名

后面的数字是打印值的宽度。默认情况下,它是左对齐的

例如:

col1="MEGAXXXX"
col2="CO415"
col3="WWE42AWE42AWE42AWE42AE42A"
col4="Z"
col5="1"
col6="M"
col7="4j4241"
col8="234"

print(f"{col1:20}{col2:10}{col3:39}{col4:2}{col5:1}{col6:2}{col7:7}{col8:7}")
会给

MEGAXXXX            CO415     WWE42AWE42AWE42AWE42AE42A              Z 1M 4j4241 234   
也可能有帮助。

您也可以使用Python3.6中提供的

你可以像这样写f字串

out_str = f"{col1:20}{col2:10}{col3:39}{col4:2}{col5:1}{col6:2}{col7:7}{col8:7}")
到文件中

col1
col1
col1
等都是具有列值的变量。替换变量名

后面的数字是打印值的宽度。默认情况下,它是左对齐的

例如:

col1="MEGAXXXX"
col2="CO415"
col3="WWE42AWE42AWE42AWE42AE42A"
col4="Z"
col5="1"
col6="M"
col7="4j4241"
col8="234"

print(f"{col1:20}{col2:10}{col3:39}{col4:2}{col5:1}{col6:2}{col7:7}{col8:7}")
会给

MEGAXXXX            CO415     WWE42AWE42AWE42AWE42AE42A              Z 1M 4j4241 234   

也可能有帮助。

使用代码块帮助其他人更好地解释您的代码和问题。使用代码块帮助他人更好地解释您的代码和问题。谢谢你,J…S,你的解决方案也很有效。不幸的是,我只能在这里标出一个答案:)谢谢你,J…S,你的解决方案也很有效。不幸的是,我只能在这里标记一个答案:)