草庐IT

Python处理Excel数据的方法

全部标签

ruby - 在 Ruby 中,为什么在使用 "do"和 "end"时不能将方法调用视为一个单元?

以下问题与问题“RubyPrintInjectDoSyntax”有关。我的问题是,我们能否坚持使用do和end并使其与puts或p一起使用?这个有效:a=[1,2,3,4]b=a.injectdo|sum,x|sum+xendputsb#printsout10所以,这样说对吗,inject是Array对象的一个​​实例方法,这个实例方法接受一段代码,然后返回一个数字。如果是这样,那么它应该与调用函数或方法并取回返回值没有区别:b=foo(3)putsb或b=circle.getRadius()putsb以上两种情况,我们可以直接说putsfoo(3)putscircle.getRadi

ruby - 在嵌套对象中使用自定义 to_json 方法

我有一个使用Ruby标准库中的Set类的数据结构。我希望能够将我的数据结构序列化为JSON字符串。默认情况下,Set序列化为数组:>>s=Set.new[1,2,3]>>s.to_json=>"[1,2,3]"这很好,直到您尝试反序列化它。所以我定义了一个自定义的to_json方法:classSetdefto_json(*a){"json_class"=>self.class.name,"data"=>{"elements"=>self.to_a}}.to_json(*a)enddefself.json_create(o)newo["data"]["elements"]endend哪个

ruby - 切换 bool 变量的最佳方法是什么?

在true和false之间进行变量切换的最佳方法是什么?一个明显的方法是初始化一个变量foo:foo=false并做:foo=foo.!每次我想切换的时候。但是当变量名很长时,这会变得冗长。有没有更简单的方法来做到这一点(通过使用诸如语法糖、原始类之类的东西)?特别是,我想知道是否有一种方法可以通过只给它一个方法来切换:foo.some_method 最佳答案 您可以使用XOR运算符。foo^=truefoo=falsefoo^=true#=>truefoo^=true#=>false

Ruby 相当于 Python 的 "array[i:]"选择 i 之后的所有数组元素?

我发现自己想要类似Python的东西ary=[1,2,3,4,5,6,7,8]ary[2:]#=>[3,4,5,6,7,8]这些天所有的时间。解决方案最终总是多行且丑陋。我想知道最优雅的解决方案可能是什么,因为我的不值得展示。 最佳答案 使用Array#drop2.1.0:019>ary.drop(2)=>[3,4,5,6,7,8] 关于Ruby相当于Python的"array[i:]"选择i之后的所有数组元素?,我们在StackOverflow上找到一个类似的问题:

ruby - 如何让 rspec 不显示数据库查询而只显示带有 rails_12factor 的点?

ruby:2.0rails:3.2.17rspec:2.14.8Database:mysqlrspecspec用于仅输出点。当我推送到Heroku并且最近添加了rails_12factorgem来绕过它时,我收到了弃用警告。但是,现在在本地运行规范时,我会得到每个事务的详细数据库输出。当我需要它时这是一个很好的选择,否则它会产生很多不需要和分散注意力的输出。所以我想要一个将它用于Heroku而不是本地的选项。请注意,这不会通过使用格式化程序来解决,例如rspecspec-fd此外,如果出现错误,在这种冗长程度下,错误几乎总是滚出当前页面...09:50:39durrantmCastle

ruby - 在调用方法的ruby中获取文件名

我有一个方法foo,它在脚本script001.rb中被调用我应该如何编写foo方法,以便它返回调用它的脚本的文件名? 最佳答案 为了避免需要处理caller风格的字符串,你可以使用Kernel#caller_locations,反而。它返回一个数组Thread::Backtrace::Location对象,它有一些方便的方法供您使用。要获取文件名,在您的情况下,您可以使用#path方法:deffoocaller_locations.first.pathend 关于ruby-在调用方法的

ruby - 如何在处理任何数据之前测试 open-uri url 是否存在

我正在尝试使用ruby​​(1.8.6)中的“open-uri”处理链接列表中的内容,但是当一个链接断开或需要身份验证时出现错误时,就会发生错误:open-uri.rb:277:in`open_http':404NotFound(OpenURI::HTTPError)fromC:/tools/Ruby/lib/ruby/1.8/open-uri.rb:616:in`buffer_open'fromC:/tools/Ruby/lib/ruby/1.8/open-uri.rb:164:in`open_loop'fromC:/tools/Ruby/lib/ruby/1.8/open-uri.

脚本底部的 Ruby 方法?

我使用的是ruby​​1.8.7。我可以发誓我之前已经在脚本底部编写了我的函数并且运行良好。我必须将它们放在顶部吗?这似乎是他们现在唯一的工作方式。没什么大不了的。我只是更喜欢将它们放在底部,所以我想我会问。 最佳答案 您可以在一个或多个BEGINblock中执行初始化代码(继承自Perl,后者继承自awk)。can_i_do_this?#=>yesBEGIN{defcan_i_do_this?puts"yes"end}为了完整起见,还有ENDblock:END{can_i_do_this?#=>yes}defcan_i_do_th

ruby - 如何使用正则表达式从 Graphite 中获取数据?

我想在一个请求中从Graphite的不同计数器获取数据,例如:-summarize(site.testing_server_2.triggers_unknown.count,'1hour','sum')&format=jsonsummarize(site.testing_server_2.requests_failed.count,'1hour','sum')&format=jsonsummarize(site.testing_server_2.core_network_bad_soap.count,'1hour','sum')&format=json等等..20多个但是我不想获取su

ruby - ruby 会自动调用初始化方法吗?

如果类定义中包含初始化方法,是否需要显式初始化对象? 最佳答案 不,Ruby不会自动调用initialize。Class#new的默认实现看起来有点像这样:classClassdefnew(*args,&block)obj=allocateobj.initialize(*args,&block)objendend[实际上,initialize默认是private,所以你需要使用obj.send(:initialize,*args,&block)。]因此,Class#new的默认实现确实调用了initialize,但完全有可能(尽管非