在Ruby中写入文本文件之前,如何格式化文本?

在Ruby中写入文本文件之前,如何格式化文本?,ruby,Ruby,我有一个从数据库检索信息的脚本,我需要将结果写入文件。在检索过程中,我提取了我喜欢以整洁格式显示的列标题和数据。下面是一个我需要它看起来像什么的示例: user_name name num_logins email_1@yahoo.com Beachwood 2 email_2@yahoo.com Beachwood

我有一个从数据库检索信息的脚本,我需要将结果写入文件。在检索过程中,我提取了我喜欢以整洁格式显示的列标题和数据。下面是一个我需要它看起来像什么的示例:

user_name             name                          num_logins   
email_1@yahoo.com     Beachwood                     2            
email_2@yahoo.com     Beachwood                     2             
email_3@yahoo.com     Beachwood                     2             
email_4@yahoo.com     Beachwood                     2             
email_55@yahoo.com    Community Internal Medicine   6             

我不擅长以特定格式创建报告/文件,因此非常感谢您的帮助。

您应该查找ruby
printf
方法,该方法与同名的C函数非常相似。它允许您为正在打印的每个值指定字段宽度和对齐方式

printf "%20d %20d\n", 334, 44

您应该查找ruby
printf
方法,它与同名的C函数非常相似。它允许您为正在打印的每个值指定字段宽度和对齐方式

printf "%20d %20d\n", 334, 44

根据您希望您的桌子有多漂亮,您可能可以使用类似于此的gem

Github上的自述文件没有提到它,但展示了如何禁用表的边框


根据您希望您的桌子有多漂亮,您可能可以使用类似于此的gem

Github上的自述文件没有提到它,但展示了如何禁用表的边框

对于你来说,创业板是一个很好的起点。它通常与IRB或Rail的控制台使用相关联,但没有任何东西表明我们不能将其用于其他用途

通常,它希望包装使用ASCII边框创建的表:

+--------------------+-----------------------------+------------+ | user_name | name | num_logins | +--------------------+-----------------------------+------------+ | email_1@yahoo.com | Beachwood | 2 | | email_2@yahoo.com | Beachwood | 2 | | email_3@yahoo.com | Beachwood | 2 | | email_4@yahoo.com | Beachwood | 2 | | email_55@yahoo.com | Community Internal Medicine | 6 | +--------------------+-----------------------------+------------+ 这看起来像:

user_name name num_logins email_1@yahoo.com Beachwood 2 email_2@yahoo.com Beachwood 2 email_3@yahoo.com Beachwood 2 email_4@yahoo.com Beachwood 2 email_55@yahoo.com Community Internal Medicine 6 用户\名称\名称\登录次数 电子邮件_1@yahoo.com海滩木2 电子邮件_2@yahoo.com海滩木2 电子邮件_3@yahoo.com海滩木2 电子邮件_4@yahoo.com海滩木2 电子邮件_55@yahoo.com社区内科6 您可能希望在将数组传递给Hirb之前弹出该数组的标题行,或者从单独的数组提供它。如果是这样,请更改
:headers
选项。

创业板可能是一个很好的起点。它通常与IRB或Rail的控制台使用相关联,但没有任何东西表明我们不能将其用于其他用途

通常,它希望包装使用ASCII边框创建的表:

+--------------------+-----------------------------+------------+ | user_name | name | num_logins | +--------------------+-----------------------------+------------+ | email_1@yahoo.com | Beachwood | 2 | | email_2@yahoo.com | Beachwood | 2 | | email_3@yahoo.com | Beachwood | 2 | | email_4@yahoo.com | Beachwood | 2 | | email_55@yahoo.com | Community Internal Medicine | 6 | +--------------------+-----------------------------+------------+ 这看起来像:

user_name name num_logins email_1@yahoo.com Beachwood 2 email_2@yahoo.com Beachwood 2 email_3@yahoo.com Beachwood 2 email_4@yahoo.com Beachwood 2 email_55@yahoo.com Community Internal Medicine 6 用户\名称\名称\登录次数 电子邮件_1@yahoo.com海滩木2 电子邮件_2@yahoo.com海滩木2 电子邮件_3@yahoo.com海滩木2 电子邮件_4@yahoo.com海滩木2 电子邮件_55@yahoo.com社区内科6
您可能希望在将数组传递给Hirb之前弹出该数组的标题行,或者从单独的数组提供它。如果需要,请更改
:headers
选项。

您也可以尝试my table\u print gem-它非常灵活,但只需要很少的设置/配置

您也可以尝试my table\u print gem-它非常灵活,但只需要很少的设置/配置

您希望输出是固定宽度还是只是适当地分隔?输出的用例是什么?是的。我希望它能被固定。您希望输出的宽度是固定的,还是仅仅被适当地分隔?输出的用例是什么?是的。我正在找人把它修好。是我首选的格式化方法,因为这是一种更通用的方式来完成同样的事情。是的,
String%
也很棒。是我首选的格式化方法,因为这是一种更通用的方式来完成同样的事情。是的,
String%
也很棒。Mark,我喜欢terminal table,但我很难用数据库查询返回的数据动态创建它。每个查询返回的列数不同。我怎样才能做到这一点?带array@Jfleck具有嵌套数组的基本演示。如果您需要更具体的帮助,您应该开始一个新的问句。Mark,我喜欢terminal table,但我很难用数据库查询返回的数据动态创建它。每个查询返回的列数不同。我怎样才能做到这一点?带array@Jfleck具有嵌套数组的基本演示。如果你需要更具体的帮助,你应该开始一个新的问题。