【发布时间】:2020-07-28 11:44:52
【问题描述】:
使用 f-Strings 打印时如何处理长字符串。 我只对字符串的第一个和最后一个 n 感兴趣(尤其是在这种情况下是文件的扩展名)。中间部分应替换为 3 个点。
举个例子:
代替:
ThisIsMyFilexyz123456s556s54s6afsaf1dshshsb8bbs6s7890.py
ThisIsMyFilexyz12345asaggsvrgahhgbargrarbrvs7890.pdf
ThisIsMyFilexyz12345asa46189sgvs7890.gif
ThisIsMyFilexyz1sgsgbs6rahhgbargrarbrvs7890.jpg
我想要这个:
ThisIsMyFilexy...123.py
ThisIsMyFilexy...456.pdf
ThisIsMyFilexy...789.xml
ThisIsMyFilexy...001.gif
ThisIsMyFilexy...002.py
ThisIsMyFilexy...003.py
import os, arrow
dirname = input("Enter a directory name: ")
def last_modified(filename):
statinfo = os.stat(filename)
timestamp = statinfo.st_mtime
utc = arrow.get(timestamp)
local = utc.to('Europe/Berlin')
modified_time = local.format('DD MMMM YYYY HH:mm:ss')
return modified_time
last_time_modified = { filename : last_modified(os.path.join(dirname, filename))
for filename in os.listdir(dirname)
if os.path.isfile(os.path.join(dirname, filename))}
# **here comes the printing part**
for key, value in last_time_modified.items():
print(f'{key:<35} {value:>35}')
【问题讨论】:
-
为什么不只是 print(string[:10]+"..." +string[-3:])?
-
它不适合我的 f-Strings 打印风格。
-
只能在左右括号的每一段处断字符串。
-
@blQSheep,您无法使用格式设置最大长度
-
python.org/dev/peps/pep-0498/#id27。见
Escape sequences
标签: python python-3.x string formatting