我想修补从网页中提取的一些文本数据.样品:
t="First sentence. Second sentence.Third sentence."
Run Code Online (Sandbox Code Playgroud)
在第二句末尾的点之后没有空格.这标志着第3个句子在原始文档中的单独行(在br标记之后).
我想使用这个正则表达式将"\n"字符插入适当的位置并修补我的文本.我的正则表达式:
t2=t.gsub(/([.\!?])([A-Z1-9])/,$1+"\n"+$2)
Run Code Online (Sandbox Code Playgroud)
不过遗憾的是它不工作:"NoMethodError:未定义的方法`+"的零:NilClass"我怎样才能正确地反向引用匹配的群体?在Microsoft Word中这么简单,我只需要使用\ 1和\ 2符号.
是否有一种方法可以将Mechanize相对链接对象转换为包含绝对URL的另一个对象.
Mechanize必须知道绝对链接,因为我也可以click在相对链接上调用该方法.
我想Array用一个uniq_elements方法来扩展该类,该方法返回多个为1的元素.我也想在我的新方法中使用闭包uniq.例如:
t=[1,2,2,3,4,4,5,6,7,7,8,9,9,9]
t.uniq_elements # => [1,3,5,6,8]
Run Code Online (Sandbox Code Playgroud)
关闭示例:
t=[1.0, 1.1, 2.0, 3.0, 3.4, 4.0, 4.2, 5.1, 5.7, 6.1, 6.2]
t.uniq_elements{|z| z.round} # => [2.0, 5.1]
Run Code Online (Sandbox Code Playgroud)
既不工作t-t.uniq也不t.to_set-t.uniq.to_set工作.我不关心速度,我在程序中只调用一次,所以它可能很慢.
我的意思是POST一个标准的文件上传表单.在这种情况下,常用命令行包含此开关:
-F "Filedata=@filename.zip"
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试提供由linux命令"mkfifo"制作的命名管道时,例如."mkfifo filename.zip",我总是在生产者方面得到一条错误信息:
curl: (23) Failed writing body (1856 != 16384)
Run Code Online (Sandbox Code Playgroud)
并且在fifo的消费者侧也出现了一些错误消息.我在生产者一方用另一个卷曲命令喂了我的fifo,例如:
curl http://example.com/archive.zip > filename.zip
Run Code Online (Sandbox Code Playgroud)
在消费者方面:
curl http://example.com/fileupload.php -F "file=@filename.zip"
Run Code Online (Sandbox Code Playgroud)
当我在fifo的消费者端传递Content-Length HTTP标头时,我在生产者端没有收到错误消息,但是消费者(上传)端仍然出现错误消息,上传失败.
curl http://example.com/fileupload.php -F "file=@filename.zip" -H "Content-Length: 393594678"
Run Code Online (Sandbox Code Playgroud)
我也试过提供cURL文件上传一个非命名管道,导致cURL从stdin读取数据(标记为@ - ),如:
curl -# http://example.com/archive.zip | curl -# http://example.com/fileupload.php -F "file=@-"
Run Code Online (Sandbox Code Playgroud)
在这种情况下上传成功,但下载和上传进度不同步,我可以看到太单独的hashmark进度指示器,一个用于下载,一个用于上载,而是连续而不是同时运行.在该远程文件的顶部始终命名为" - ",但这对我来说不是问题,可以稍后重命名.
进一步注意:我在Ruby命令行IRB/Pry会话中尝试了上述内容,我注意到当我使用Ruby命令"system"来调用管道构造时:
system %Q{curl -# http://example.com/archive.zip | curl -# http://example.com/fileupload.php -F "file=@-"}
Run Code Online (Sandbox Code Playgroud)
在这种情况下我只能看到一个散列标记进度指示器,所以我认为管道工作应该是这样,但我可以在第二种情况下看到两个连续的散列标记进度指示器,如下所示:
%x{curl -# http://example.com/archive.zip | curl -# http://example.com/fileupload.php -F "file=@-"}
Run Code Online (Sandbox Code Playgroud) 我想将Ruby集或散列保存到磁盘,并在必要时从文件中返回.我怎样才能做到这一点?
我有很多图像,不同的大小和宽高比.是否有可能对它们进行蒙太奇?我的意思是在为构建公共行的图像设置公共高度后,将它们最佳地排列成行.当然,不允许图像宽高比进行修改,并且不允许任何图像从最终剪辑中删除,也不允许复制.
蒙太奇中图片行的高度通常不相等,但是它们的值应该保持在最小范围内(统计意义上)或换句话说:必须最小化与行高度的平均值的标准偏差.
给出所需的蒙太奇宽度和高度(a.)
或者给出宽度和允许的比率范围(或等效的高度范围)(b.),例如宽度必须是1024像素,高度必须使得w/h <0.9且w/h> 0.8
1.)图像必须按照初始固定顺序打包在蒙太奇中.在这种情况下,必须在蒙太奇(简单)中开始新图像行之后找到图像.
2.)允许改变图像顺序.在这种情况下,必须找到一种排列,当每个图像被打包到蒙太奇(硬)中时,这导致最终行高的标准偏差的最小化.
例如:
我正在摆弄Linux命令"timeout":它只是在给定秒后停止长时间运行的命令.但我想暂停一个命令,而不是一组命令.我可以以两种方式()和{;}对命令进行分组,但是以下都不起作用:
timeout 1 { sleep 2; echo something; }
timeout 1 ( sleep 2; echo something )
Run Code Online (Sandbox Code Playgroud)
我怎么能用分组来做到这一点?
我想在DIV元素内并排放置两个任意图像,这个图像正好是800像素宽(宽度= 800像素).图像的宽度和高度也可以是各种尺寸.有时宽度大于高度,有时宽度小于高度.我将两个图像放在div元素中,第三个div放在div元素中.我尝试了这段代码,但无法正常工作.我该怎么办?JSFiddle:http://jsfiddle.net/gUT43/
<!DOCTYPE html>
<html>
<head>
<style>
img {
max-width: 100%;
height: auto;
width: auto\9; /* ie8 */
}
div {
display: inline-block;
white-space: nowrap;
}
</style>
</head>
<body>
<div style="max-width: 800px; border:2px black solid">
<div style="height: auto; border:1px green solid"">
<img src=http://i.imgur.com/Xt6vUQD.jpg>
</div>
<div style="height: auto; border:1px blue solid"">
<img src=http://i.imgur.com/BqFMNlq.jpg >
</div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我想从 BMP 格式的视频中提取所有关键帧以进行进一步处理。我设法调查了这个命令:
ffmpeg -skip_frame nokey -i videofile.mp4 -vf select='eq(pict_type\,I),setpts=N/(25*TB)' -q 1 ./%09d.bmp
Run Code Online (Sandbox Code Playgroud)
它适用于除 MP4 和 MKV 文件之外的所有视频文件。相反,它从 MP4 文件中提取所有帧,此外我还收到了很多错误消息:
[h264 @ 0x90d80a0] concealing 1200 DC, 1200 AC, 1200 MV errors in P frame
[h264 @ 0x90c4ce0] concealing 1200 DC, 1200 AC, 1200 MV errors in B frame
[h264 @ 0x90d80a0] concealing 1200 DC, 1200 AC, 1200 MV errors in B frame
[h264 @ 0x90d7500] Cannot use next picture in error concealment
[h264 @ 0x90d7500] concealing 1200 DC, 1200 AC, …Run Code Online (Sandbox Code Playgroud) 在我的博客上,可以收听广播频道,可以是现场直播,也可以是按时间表收听频道存档中的先前广播。
我希望访问者能够使用其独特的节目名称保存这些较旧的广播。当访问者单击给定的时间戳时,适当的或适当参数化的 URL 将加载到 HTML5 音频对象的源中。
有两种 URL 格式,第一种仅适用于当天:http://example.com/20190707080000/20190707090000/channel1.mp3
在这种情况下,我可以利用以下 hack:而不是最新的 URL,我将以下 URL 加载到音频播放器中:http://example.com/20190707080000/20190707090000/channel1.mp3/Title_of_the_programme.mp3
在这种情况下,访问者将能够通过给定的文件名保存收听的节目:“Title_of_the_programme.mp3”。
其他日子的其他 URL 与当天不同,因为这些节目已经存档,可能采用较低的比特率和/或格式: http: //example.com/2019/07/06/channe11。 mp4?start=28800&end=32400 “start”和“end”参数适用于一天中给定的第二秒,即实际程序开始和结束的时间。
在第二种情况下,上述黑客不再起作用,因此我无法将类似的 URL 加载到 HTML5 音频播放器中: http://example.com/2019/07/06/channel1.mp4 ?start=28800&end =32400/节目标题.mp4
不幸的是,它不起作用,当我单击 HTML5 音频播放器的“另存为”按钮时,文件名始终是“channel1.mp4”,这是次优的。
在这两种情况下,针对 GET 请求都会立即提供完整的程序。
由于浏览器的同源策略,HTML“A”元素的“download”属性、“a[download]”或 HTML5“audio”元素的相同属性也不起作用:无线电的域是当然与我的博客域不同。
由于同源策略,使用 Ajax 调用 (XMLhttprequest) 将生成的媒体文件提取到浏览器 blob 中也不起作用。无线电服务器当然不会为这些 Ajax 调用提供适当的标头字段:“Access-Control-Allow-Origin: *”。
广播节目 URL 的响应标头不包含“content-disposition”标头字段,因此文件名必须由 URL 本身确定。
ruby ×4
html ×2
ajax ×1
arrays ×1
audio ×1
bash ×1
blob ×1
command ×1
crop ×1
css ×1
curl ×1
disk ×1
extract ×1
ffmpeg ×1
fifo ×1
file ×1
gsub ×1
hyperlink ×1
image ×1
imagemagick ×1
javascript ×1
keyframe ×1
linux ×1
mechanize ×1
mkv ×1
montage ×1
mp4 ×1
object ×1
optimization ×1
pipe ×1
reference ×1
regex ×1
relative-url ×1
resize ×1
save ×1
stdin ×1
timeout ×1
uniq ×1
upload ×1