python - 如何格式化具有多个字符的python字符串作为填充部分
问题描述
填充单个字符都很好:
>>> '{:{pad}>{num}}'.format('12345',num='10', pad='a')
aaaaa12345
abcab12345
但是,如何通过使用 'abc' 作为填充字符来打印?
这是不好的:
>>> '{:{pad}>{num}}'.format('12345',num='10', pad='abc')
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-38-85d5680ad88a> in <module>()
----> 1 '{:{pad}>{num}}'.format('hello',num='10', pad='abc')
ValueError: Invalid format specifier
我喜欢 python3 中的迷你格式语言 BTW ;-)
解决方案
您应该连接format
操作(提示:您需要为每个格式嵌套级别{}
使用双打):{{}}
baseFmtStr = "'{{{{:{{pad}}>{num}}}}}'"
resultStr = baseFmtStr.format(num=10).format(pad='-').format(12345)
这让我们得出'-----12345'
这里有一个活生生的例子
推荐阅读
- osgi - 如何在 karaf 运行时环境中运行 java web 应用程序包
- javascript - 使用 Google 表格和 Apps 脚本创建可搜索的电话目录?
- functional-programming - 我可以在数值分析/方法中应用 CPS(延续传递风格)吗?
- c# - 在动作内部分配响应属性时对控制器动作进行单元测试
- c++ - 以 RAW 和 ASCII 格式导出为 pbm 有什么区别?
- regex - curl中数字范围的正则表达式
- android - StorageException:权限被拒绝
- mysql - Laravel 迁移中的回滚 UUID 类型
- api - 从地图读取数据
- javascript - 从 API 调用 Fetch Data 一次