我有一个ASCII日志文件,其中包含一些我想要提取的内容.我从来没有花时间适当地学习Perl,但我认为这是完成这项任务的好工具.
该文件的结构如下:
... ... some garbage ... ... garbage START what i want is on different lines END ... ... more garbage ... next one START more stuff I want, again spread through multiple lines END ... more garbage
所以,我正在寻找一种方法来提取每个START和END分隔符字符串之间的行.我怎样才能做到这一点?
到目前为止,我只找到了一些关于如何使用START字符串打印行的示例,或者其他与我正在寻找的内容有些相关的文档项.
特定
我正在寻找一种方法(最好是在Java中)来创建该文件的本地副本,而无需先下载整个存档.
从我(有限的)理解应该是可能的,虽然我不知道如何做到这一点.我一直在使用TrueZip,因为它似乎支持各种各样的存档类型,但我对它以这种方式工作的能力存有疑虑.有没有人有这种经历?
编辑:能够用tarball和压缩的tarball做到这一点对我来说也很重要.
我的文字:
12a49803-713c-4204-a8e6-248e554a352d_ Content-Type: text/plain; charset="iso-8859-6" Content-Transfer-Encoding: base64 DQrn0Ocg0dPH5MkgyszR6sjqySDl5iDH5OfoyuXq5A0KDQrH5OTaySDH5NnRyOrJIOXP2ejlySAx MDAlDQogCQkgCSAgIAkJICA= --_12a49803-713c-4204-a8e6-248e554a352d_ Content-Type: text/html; charset="iso-8859-6" Content-Transfer-Encoding: base64 PGh0bWw+DQo8aGVhZD4NCjxzdHlsZT48IS0tDQouaG1tZXNzYWdlIFANCnsNCm1hcmdpbjowcHg7
Run Code Online (Sandbox Code Playgroud)
我想提取iso-8859-6
我有一个让我疯狂的问题,我不得不承认我在CakePHP中没有经验.正如在这个问题中提到的, 在CakePHP查找函数中使用DISTINCT,这样使用DISTINCT:
$this->Model->find('all', array('fields'=>'DISTINCT field_name'));
Run Code Online (Sandbox Code Playgroud)
不返回DISTINCT值,而是返回所有行.事实上,这里的DISTINCT完全没有意义,因为由于某种原因,CakePHP补充道TableName.id在SQL查询中(为什么??我可以删除id引用??),有效地返回每个DISTINCT主键(= all rows = unhelpful).
所以,我仍然想要返回特定field_name列的DISTINCT值.我不能只使用find('all')或find('list')函数吗?是否真的是使用上面链接中描述的Set :: extract()函数来实现它的正确方法?这似乎是CakePHP过度间接的解决方案,通常Cake会让我的生活更轻松.:-)将find和DISTINCT一起使用的正确方法是什么?也许DISTINCT不适用于find()?
看看CookBook,他们说:"做一个DISTINCT查询的快速例子.你可以用类似的方式使用其他运算符,如MIN(),MAX()等:"
<?php
array(
'fields' => array('DISTINCT (User.name) AS my_column_name'),
'order' = >array('User.id DESC')
)
?>
Run Code Online (Sandbox Code Playgroud)
资料来源:http://book.cakephp.org/2.0/en/models/retrieving-your-data.html
这表明DISTINCT应该可以使用,但是这里有什么用呢?(User.name)对应于我想要DISTINCT的field_name还是my_column_name my field_name?
最后,从CakePHP 1.x迁移到CakePHP 2.x时,是否有任何改变?即在Stackoverflow上看到的CakePHP 1.x的答案仍然相关吗?
提前致谢!
我正在尝试使用此处的代码提取压缩文件夹.
def unzip(source_filename, dest_dir):
with zipfile.ZipFile(source_filename) as zf:
for member in zf.infolist():
words = member.filename.split('/')
path = dest_dir
for word in words[:-1]:
drive, word = os.path.splitdrive(word)
head, word = os.path.split(word)
if word in (os.curdir, os.pardir, ''): continue
path = os.path.join(path, word)
zf.extract(member, path)
Run Code Online (Sandbox Code Playgroud)
但是当试图提取,例如,wordpress.zip与目录结构
wordpress/
-wp-content/
--- somefile.php
-wp-config.php
-index.php
我只获取根文件夹或wordpress下面的文件夹中的文件/ 在这种情况下.所以我得到wordpress/wp-content/somefile.php但不是wordpress /文件夹本身的文件.
我检查了FFMpeg文档和许多论坛,并找出正确的命令行来从.MP4视频中提取字幕应如下所示:
ffmpeg -i video.mp4 -vn -an -codec:s:0 srt out.srt
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误,这让我怀疑这是否可行:
打开输出流#0的编码器时出错:0 - 可能是不正确的参数,如bit_rate,rate,width或height
使用ffmpeg -codecs,我可以确认ffmpeg应该能够编码subrip字幕.
使用ffmpeg -i video.mp4,我可以看到视频中嵌入了两个字幕轨道:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4':
...
Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 720x572 [SAR 64:45 DAR 256:143], 1341 kb/s, 25 fps, 25 tbr, 90k tbn, 180k tbc
Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 191 kb/s
Stream #0:2(fra): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 191 kb/s
Stream …Run Code Online (Sandbox Code Playgroud) 嗨我正在开发一个程序,将打开一个图像,然后从中提取元数据如何使用python提取元数据?
谢谢
我正在写一个非常基本的java程序,计算一个句子中每个单词的频率到目前为止我设法做了这么多
import java.io.*;
class Linked {
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
System.out.println("Enter the sentence");
String st = br.readLine();
st = st + " ";
int a = lengthx(st);
String arr[] = new String[a];
int p = 0;
int c = 0;
for (int j = 0; j < st.length(); j++) {
if (st.charAt(j) == ' ') {
arr[p++] = st.substring(c,j);
c = j + 1;
}
}
}
static int …Run Code Online (Sandbox Code Playgroud) 有一些库用于通过Python提取存档文件,例如gzip,zipfile库,rarfile,tarfile,patool等.我发现其中一个库(patool)特别有用,因为它具有交叉格式功能它可以提取几乎任何类型的存档,包括最流行的存档,如ZIP,GZIP,TAR和RAR.
要使用patool提取存档文件,它就像这样简单:
patoolib.extract_archive( "Archive.zip",outdir="Folder1")
Run Code Online (Sandbox Code Playgroud)
其中"Archive.zip"是存档文件"Folder1"的路径,而是存储解压缩文件的目录的路径.
提取工作正常.问题是,如果我为完全相同的存档文件再次运行相同的代码,则相同的提取文件将存储在同一文件夹中,但名称略有不同(第一次运行时为文件名,第二次运行时为filename1,文件名为11)第三,等等.
如果目录中已经存在同名文件,我需要代码来覆盖提取的文件.
这个extract_archive函数看起来很小 - 它只有这两个参数,一个verbosity参数和一个program参数,它指定了你想要提取档案的程序.
编辑:
Nizam Mohamed的回答记录了extract_archive函数实际上覆盖了输出.我发现这部分是正确的 - 该函数会覆盖ZIP文件,但不会覆盖我所追求的GZ文件.对于GZ文件,该函数仍会生成新文件.
编辑 Padraic Cunningham的回答建议使用主源.因此,我下载了该代码,并用链接中的脚本替换了旧的patool库脚本.结果如下:
os.listdir()
Out[11]: ['a.gz']
patoolib.extract_archive("a.gz",verbosity=1,outdir=".")
patool: Extracting a.gz ...
patool: ... a.gz extracted to `.'.
Out[12]: '.'
patoolib.extract_archive("a.gz",verbosity=1,outdir=".")
patool: Extracting a.gz ...
patool: ... a.gz extracted to `.'.
Out[13]: '.'
patoolib.extract_archive("a.gz",verbosity=1,outdir=".")
patool: Extracting a.gz ...
patool: ... a.gz extracted to `.'.
Out[14]: '.'
os.listdir()
Out[15]: ['a', 'a.gz', 'a1', 'a2'] …Run Code Online (Sandbox Code Playgroud) 我需要根据以下结构基于文本文件创建Pandas DataFrame:
Alabama[edit]
Auburn (Auburn University)[1]
Florence (University of North Alabama)
Jacksonville (Jacksonville State University)[2]
Livingston (University of West Alabama)[2]
Montevallo (University of Montevallo)[2]
Troy (Troy University)[2]
Tuscaloosa (University of Alabama, Stillman College, Shelton State)[3][4]
Tuskegee (Tuskegee University)[5]
Alaska[edit]
Fairbanks (University of Alaska Fairbanks)[2]
Arizona[edit]
Flagstaff (Northern Arizona University)[6]
Tempe (Arizona State University)
Tucson (University of Arizona)
Arkansas[edit]
Run Code Online (Sandbox Code Playgroud)
带有"[edit]"的行是States,行[number]是Regions.我需要拆分以下内容,然后重复每个Region Name的State name.
Index State Region Name
0 Alabama Aurburn...
1 Alabama Florence...
2 Alabama Jacksonville...
...
9 Alaska Fairbanks...
10 Alaska …Run Code Online (Sandbox Code Playgroud)