Python - 创建具有动态大小的文本边框

2024-03-09

我正在创建一个命令行脚本,我希望有一个框...

+--------+
|        |
|        |
|        |
+--------+

...这将始终适合其内容。我知道如何做顶部和底部,但它让 ljust 和 rjust 正常工作。每行可能有一个字符串替换,即 5 个,这些字符串的长度可以是 0 到 80 之间的任何值。

我一直在做这样的事情:

print "|%s|" % (my_string.ljust(80-len(my_string)))

但天哪,太乱了……而这只是一种硬编码的替换。我不知道如何使其动态化,比如说第一行有 2 个子集,第二行有 3 个子集,第三行有 1 个子集(所有这些都以列格式)。

因此,对于一个基本示例,我需要:

+--------+
| 1      |
| 1 2 3  |
| 1 2    |
+--------+

我这样做:

def bordered(text):
    lines = text.splitlines()
    width = max(len(s) for s in lines)
    res = ['┌' + '─' * width + '┐']
    for s in lines:
        res.append('│' + (s + ' ' * width)[:width] + '│')
    res.append('└' + '─' * width + '┘')
    return '\n'.join(res)

所以你首先将所有对象格式化为text变量,然后将其传递给bordered()功能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python - 创建具有动态大小的文本边框 的相关文章

  • 使用 python requests 模块时出现 HTTP 503 错误

    我正在尝试发出 HTTP 请求 但当前可以从 Firefox 浏览器访问的网站响应 503 错误 代码本身非常简单 在网上搜索一番后我添加了user Agent请求参数 但也没有帮助 有人能解释一下如何消除这个 503 错误吗 顺便说一句
  • Django 的内联管理:一个“预填充”字段

    我正在开发我的第一个 Django 项目 我希望用户能够在管理中创建自定义表单 并向其中添加字段当他或她需要它们时 为此 我在我的项目中添加了一个可重用的应用程序 可在 github 上找到 https github com stephen
  • 如何使用 opencv.omnidir 模块对鱼眼图像进行去扭曲

    我正在尝试使用全向模块 http docs opencv org trunk db dd2 namespacecv 1 1omnidir html用于对鱼眼图像进行扭曲处理Python 我正在尝试适应这一点C 教程 http docs op
  • Pandas/Google BigQuery:架构不匹配导致上传失败

    我的谷歌表中的架构如下所示 price datetime DATETIME symbol STRING bid open FLOAT bid high FLOAT bid low FLOAT bid close FLOAT ask open
  • 处理 Python 行为测试框架中的异常

    我一直在考虑从鼻子转向行为测试 摩卡 柴等已经宠坏了我 到目前为止一切都很好 但除了以下之外 我似乎无法找出任何测试异常的方法 then It throws a KeyError exception def step impl contex
  • 删除flask中的一对一关系

    我目前正在使用 Flask 开发一个应用程序 并且在删除一对一关系中的项目时遇到了一个大问题 我的模型中有以下结构 class User db Model tablename user user id db Column db String
  • 独立滚动矩阵的行

    我有一个矩阵 准确地说 是 2d numpy ndarray A np array 4 0 0 1 2 3 0 0 5 我想滚动每一行A根据另一个数组中的滚动值独立地 r np array 2 0 1 也就是说 我想这样做 print np
  • Pandas Merge (pd.merge) 如何设置索引和连接

    我有两个 pandas 数据框 dfLeft 和 dfRight 以日期作为索引 dfLeft cusip factorL date 2012 01 03 XXXX 4 5 2012 01 03 YYYY 6 2 2012 01 04 XX
  • 在Python中连接反斜杠

    我是 python 新手 所以如果这听起来很简单 请原谅我 我想加入一些变量来生成一条路径 像这样 AAAABBBBCCCC 2 2014 04 2014 04 01 csv Id TypeOfMachine year month year
  • 使用 xlrd 打开 BytesIO (xlsx)

    我正在使用 Django 需要读取上传的 xlsx 文件的工作表和单元格 使用 xlrd 应该可以 但因为文件必须保留在内存中并且可能不会保存到我不知道如何继续的位置 本例中的起点是一个带有上传输入和提交按钮的网页 提交后 文件被捕获req
  • 为什么 PyYAML 花费这么多时间来解析 YAML 文件?

    我正在解析一个大约 6500 行的 YAML 文件 格式如下 foo1 bar1 blah name john age 123 metadata whatever1 whatever whatever2 whatever stuff thi
  • Python beautifulsoup 仅限 1 级文本

    我看过其他 beautifulsoup 得到相同级别类型的问题 看来我的有点不同 这是网站 我正试图拿到右边那张桌子 请注意表的第一行如何展开为该数据的详细细分 我不想要那个数据 我只想要最顶层的数据 您还可以看到其他行也可以展开 但在本例
  • “隐藏”内置类对象、函数、代码等的名称和性质[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我很好奇模块中存在的类builtins无法直接访问的 例如 type lambda 0 name function of module
  • 在Python中检索PostgreSQL数据库的新记录

    在数据库表中 第二列和第三列有数字 将会不断添加新行 每次 每当数据库表中添加新行时 python 都需要不断检查它们 当 sql 表中收到的新行数低于 105 时 python 应打印一条通知消息 警告 数量已降至 105 以下 另一方面
  • 如何使用 Mysql Python 连接器检索二进制数据?

    如果我在 MySQL 中创建一个包含二进制数据的简单表 CREATE TABLE foo bar binary 4 INSERT INTO foo bar VALUES UNHEX de12 然后尝试使用 MySQL Connector P
  • javascript 是否有等效的 __repr__ ?

    我最接近Python的东西repr这是 function User name password this name name this password password User prototype toString function r
  • 如何使用原始 SQL 查询实现搜索功能

    我正在创建一个由 CS50 的网络系列指导的应用程序 这要求我仅使用原始 SQL 查询而不是 ORM 我正在尝试创建一个搜索功能 用户可以在其中查找存储在数据库中的书籍列表 我希望他们能够查询 书籍 表中的 ISBN 标题 作者列 目前 它
  • python import inside函数隐藏现有变量

    我在我正在处理的多子模块项目中遇到了一个奇怪的 UnboundLocalError 分配之前引用的局部变量 问题 并将其精简为这个片段 使用标准库中的日志记录模块 import logging def foo logging info fo
  • Pandas 每周计算重复值

    我有一个Dataframe包含按周分组的日期和 ID df date id 2022 02 07 1 3 5 4 2022 02 14 2 1 3 2022 02 21 9 10 1 2022 05 16 我想计算每周有多少 id 与上周重
  • cv2.VideoWriter:请求一个元组作为 Size 参数,然后拒绝它

    我正在使用 OpenCV 4 0 和 Python 3 7 创建延时视频 构造 VideoWriter 对象时 文档表示 Size 参数应该是一个元组 当我给它一个元组时 它拒绝它 当我尝试用其他东西替换它时 它不会接受它 因为它说参数不是

随机推荐

  • 从两个向量(名称、值)创建命名列表

    有没有办法在两个向量上使用 mapply 来构造命名列表 第一个向量的类型为character并包含用于列表的名称 而第二个包含值 到目前为止 我唯一的解决方案是 gt dummyList list gt addToList lt func
  • 流星没有开始

    我在启动 Meteor 示例时遇到问题 这就是我打字时得到的meteor在应用程序文件夹中 parties Unexpected mongo exit code 100 Restarting Unexpected mongo exit co
  • 使用 Phonegap 和 AngularJS 的 HTML5 模式

    我正在尝试使 AngularJS html5 模式 true 与 Phonegap 一起使用 我之前做了很多搜索来发布这个 我尝试了不同的组合 配置 在元中添加 标签 也尝试使用 和 添加 html 后缀到路由端点 在 config 块内添
  • 如何选择每月最高消费客户

    我有一个列出日期 customerID orderID 和 orderCost 的视图 如何选择每月最高消费客户 该数据仅涵盖2015年的六个月时间 我能够获得每个客户每月花费的总和 但不能获得最大支出客户 SELECT EXTRACT Y
  • 独立的 getter/setter 方法,还是组合的?

    在处理一个项目时 我一直在进行一些更改并浏览现有框架 API 文档以获取见解 在仔细阅读 Kohana 文档时 我注意到任何给定类的 getter setter 通常都是组合在一起的 public function someProperty
  • iOS拍照倒放的处理方法

    我在网站上使用输入字段 以便用户可以给自己拍照 在 iPad iPhone 上 生成的图片是颠倒的 如何轻松检测用户是否使用相机 以便我通过 Javascript 旋转图像 之后我在 Javascript Canvas 中使用该图片 我得到
  • 使用通用通配符代替接口

    如果你想存储类型的对象数组MyInterface 以下两种形式都可以接受吗 如果可以的话 您什么时候会使用第二种形式而不是第一种形式 i 仅使用一个接口 List
  • Matplotlib 绘图窗口未使用 command-w 关闭

    我在我的Mac上使用ipython3 版本如下 Python 3 5 2 Anaconda custom x86 64 default Jul 2 2016 17 52 12 and matplotlib版本2 0 0 我改变了后端maco
  • 哎呀!使用保留字来命名列

    我制作了一个 bigquery 表 其中有一列名为 row 无引号 doh 现在 如果我引用该列 我的 sql 将无法编译 SELECT row etext FROM hcd hdctext LIMIT 1 ERROR 我没有看到 ROW
  • 如何在Java中使用snake yaml序列化具有自定义名称的字段

    我正在尝试序列化具有如下字段的 Java 实例 public class Person private String firstName private String lastName public String getFirstName
  • shell脚本中的三重嵌套引号

    我正在尝试编写一个 shell 脚本来调用另一个脚本 然后执行 rsync 命令 第二个脚本应该在它自己的终端中运行 所以我使用gnome terminal e 命令 该脚本的参数之一是一个字符串 其中包含应提供给 rsync 的参数 我把
  • 在 Xamarin 应用程序中将项目添加到 Android 上的 ListView

    我正在尝试重新混音将项目添加到 ListView 的基本 Android 建议 https stackoverflow com q 4540754 419956在 Xamarin 应用程序中 但到目前为止我失败了 在 Xamarin Stu
  • 具有延迟加载功能的 ViewModel 类的单元测试

    我正在尝试为具有延迟加载的 viewModel 类编写单元测试 我有以下 ViewModel 类 abstract class DetailViewModel item TmdbItem BaseViewModel private val
  • 使用 bash 和正则表达式在一行中查找并终止进程

    我在编程时经常需要杀死一个进程 我现在的做法是 ps aux grep python csp build py user 5124 1 0 0 3 214588 13852 pts 4 Sl 11 19 0 00 python csp bu
  • 如何在 MSBuild 中递归调用任务?

    例如 我想每次调用这些脚本传递差异参数
  • 驱动程序开发疑难解答:Windows CodeIntegrity 3004 无法识别签名的驱动程序

    简短的介绍 我有一个通过 SignTool 验证的签名驱动程序 但 Windows 拒绝加载它并出现错误 CodeIntegrity 3004 在系统上找不到文件哈希 我该如何解决 详细描述 我正在使用 Cypress Suite USB
  • 隐藏WebView中的滚动条

    当我不滚动页面时 我想在 WebView 中隐藏垂直滚动条 目前来看 是一直显示的 我以编程方式创建 WebView 所以我的问题与以编程方式自定义滚动条有关 谢谢 试试这个代码 webView setVerticalScrollBarEn
  • adb 未检测到 micromax a111

    最近我购买了 micromax a111 Android 设备 我是安卓开发者 因此尝试使用该设备进行调试选项 但 adb 无法检测到该设备 我也更改了设置 但没有成功 如果有人有解决方案 请帮助我解决这个问题 micromax没有官方的P
  • Play 框架中的 post 请求中的表单值为空

    我有 html 来回发表单 如下所示 message String main Contact contact css gt div div div p Have a question or need some assistance Let
  • Python - 创建具有动态大小的文本边框

    我正在创建一个命令行脚本 我希望有一个框 这将始终适合其内容 我知道如何做顶部和底部 但它让 ljust 和 rjust 正常工作 每行可能有一个字符串替换 即 5 个 这些字符串的长度可以是 0 到 80 之间的任何值 我一直在做这样的事