今天我们一起来研究一些非常有用的第三方模块,可以使得我们的日常编码变得更加简单方便
https://github.com/amoffat/sh
如果曾经在 Python 中使用过 subprocess 库,那么我们很有可能对它感到失望,它不是最直观的库,可能还有些复杂,并且很难处理底层系统调用的输出。
但是 sh 库结束了低效使用子进程的痛苦,使用 sh 库,我们几乎可以进行任何想要的系统调用,就好像它是一个普通函数一样,这使得执行这些调用变得更加简单和直观。我们可以像使用普通 Python 函数一样使用它们。
下面是使用 ls 从 sh 获取目录内容的示例:
我们所要做的就是像导入普通函数一样导入系统调用,最好的部分是所有函数都是动态生成的,因此我们应该可以访问底层系统中已经存在的大多数二进制文件。
下次当我们需要进行一些系统调用时,可以尝试使用 sh。
https://github.com/leapfrogonline/rstr
如果我们需要一些易于访问的随机数据的次数是无法计算的,无论是为代码构建测试、填充缓冲区还是用随机数据模糊代码以查看它在哪里中断,rstr 库都能满足我们的需求。
这个方便的小库可让我们生成不同类型的随机字符串数据,它可以生成字母数字数据、特殊符号,甚至使用正则表达式构建复杂的数据模式。
例如,假设我们想要一串一定长度的数字。我们可以使用下面的 rstr 片段来完成此操作:
这将打印出随机选择的 10 位数字,便利!
https://ipython.org/
IPython 不是一般的模块,这是一个令人难以置信的交互式 shell 模块,可增强我们的 Python REPL。IPython 为交互式 Python shell 带来了一套很棒的功能,例如自动完成、彩色输出和运行时细节。
使用 IPython,引入类和检查函数变得容易得多。命令历史更易于导航,并且我们还可以获得类似于 Zsh 的强大的选项卡完成和自动完成功能。
https://github.com/jmoiron/humanize
这个库实在令人兴奋,它将采用日期、时间和数字等数字,并将它们“人性化”成人类可读的短语,如“三点钟”或“100 亿”,更加优秀的是它会自动执行此操作!
例如,假设我们正在处理一堆非常大的数字(想想数百万和数十亿),并且希望以更友好的方式向用户展示它们。这个库可以做到这一点,甚至不费吹灰之力:
Ouptu:
400.0 million
人性化模块也非常适合计算我们的股市收益(或损失……)并以易于阅读的方式呈现。
https://github.com/carpedm20/emoji/
最后我们介绍一个有趣的库,这个库使将表情符号添加到文本中。没有人愿意将表情符号直接复制并粘贴到他们的代码中,或者在混乱的字符代码中摸索。
以下是如何在代码中添加眨眼表情符号的示例:
这将打印出实际的😉表情符号,现在当用户在控制台中出错时,就可以向他们眨眼了。
好了,这就是今天分享的全部内容,喜欢就点个赞吧~
本文由 mdnice 多平台发布
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。
我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%
我正在使用ruby1.9解析以下带有MacRoman字符的csv文件#encoding:ISO-8859-1#csv_parse.csvName,main-dialogue"Marceu","Giveittohimóhe,hiswife."我做了以下解析。require'csv'input_string=File.read("../csv_parse.rb").force_encoding("ISO-8859-1").encode("UTF-8")#=>"Name,main-dialogue\r\n\"Marceu\",\"Giveittohim\x97he,hiswife.\"\
有没有办法在这个简单的get方法中添加超时选项?我正在使用法拉第3.3。Faraday.get(url)四处寻找,我只能先发起连接后应用超时选项,然后应用超时选项。或者有什么简单的方法?这就是我现在正在做的:conn=Faraday.newresponse=conn.getdo|req|req.urlurlreq.options.timeout=2#2secondsend 最佳答案 试试这个:conn=Faraday.newdo|conn|conn.options.timeout=20endresponse=conn.get(url
我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b
我正在尝试在Ruby中复制Convert.ToBase64String()行为。这是我的C#代码:varsha1=newSHA1CryptoServiceProvider();varpasswordBytes=Encoding.UTF8.GetBytes("password");varpasswordHash=sha1.ComputeHash(passwordBytes);returnConvert.ToBase64String(passwordHash);//returns"W6ph5Mm5Pz8GgiULbPgzG37mj9g="当我在Ruby中尝试同样的事情时,我得到了相同sha
我意识到这可能是一个非常基本的问题,但我现在已经花了几天时间回过头来解决这个问题,但出于某种原因,Google就是没有帮助我。(我认为部分问题在于我是一个初学者,我不知道该问什么......)我也看过O'Reilly的RubyCookbook和RailsAPI,但我仍然停留在这个问题上.我找到了一些关于多态关系的信息,但它似乎不是我需要的(尽管如果我错了请告诉我)。我正在尝试调整MichaelHartl'stutorial创建一个包含用户、文章和评论的博客应用程序(不使用脚手架)。我希望评论既属于用户又属于文章。我的主要问题是:我不知道如何将当前文章的ID放入评论Controller。
这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Pythonconditionalassignmentoperator对于这样一个简单的问题表示歉意,但是谷歌搜索||=并不是很有帮助;)Python中是否有与Ruby和Perl中的||=语句等效的语句?例如:foo="hey"foo||="what"#assignfooifit'sundefined#fooisstill"hey"bar||="yeah"#baris"yeah"另外,类似这样的东西的通用术语是什么?条件分配是我的第一个猜测,但Wikipediapage跟我想的不太一样。
什么是ruby的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht
我的工作要求我为某些测试自动生成电子邮件。我一直在四处寻找,但未能找到可以快速实现的合理解决方案。它需要在outlook而不是其他邮件服务器中,因为我们有一些奇怪的身份验证规则,我们需要保存草稿而不是仅仅发送邮件的选项。显然win32ole可以做到这一点,但我找不到任何相当简单的例子。 最佳答案 假设存储了Outlook凭据并且您设置为自动登录到Outlook,WIN32OLE可以很好地完成此操作:require'win32ole'outlook=WIN32OLE.new('Outlook.Application')message=