python - Python中的字符串格式化
问题描述
对于给定的文件路径:
source_path = 'User/animal/herbivore/query/{}/'
如果值为 Null 则应格式化如下
'User/animal/herbivore/query/Q1'
如果值是一个数字,它应该是
'User/animal/herbivore/query/1/Q1'
当值为空时如何格式化source_path
解决方案
source_path = 'User/animal/herbivore/query/'
end_path = 'Q1'
str_value = ''
if str_value:
if type(str_value) == int or (type(str_value) == str and str_value.isdigit()):
resulted_path = source_path + str(str_value) + '/' + end_path
print(resulted_path)
else:
resulted_path = source_path + end_path
print(resulted_path)
# output
# case 1 :
# str_value = ''
# resulted_path = 'User/animal/herbivore/query/Q1'
# case 2 :
# str_value = '1'
# resulted_path = 'User/animal/herbivore/query/1/Q1'
# case 3 :
# str_value = 1
# resulted_path = 'User/animal/herbivore/query/1/Q1'
# case 4 :
# str_value = None
# resulted_path = 'User/animal/herbivore/query/Q1'
您可以通过删除不需要的 if 条件来进一步优化代码。如果需要,您还可以添加其他条件逻辑。
推荐阅读
- java - D/OkHttp: <-- HTTP FAILED: javax.net.ssl.SSLException: SSL handshake aborted: ssl=0x64e3c938: I/O error during system call, Connection reset by peer
- angular - 使用 Angular 的原生移动应用程序的 SQLite db
- java - 带有 MongoDB 的 Java POJO 不提取数据
- python - openpyxl 无法追加列表数据类型,一直显示 TypeError: Value must be a list
- ios - 使用 Apple Pay 完成 NFC 交易后立即通过推送通知通知设备
- google-bigquery - Big Query Deduplication 查询示例说明
- f# - F# 中的结果和域设计
- c# - 如何在不使用“使用 System.Security.Cryptography;”的情况下在字符串上实现 md5;或任何其他内置方法 - C#
- wordpress - 如何防止用户(作者)在单个帖子中添加新标签?
- haskell - “忽略(可能损坏)包的 abi-depends 字段”是什么意思?