-
2017-01-23 11:05:02本文展示如何利用shell从一个文件中,(按行)找出不在另一个文件中的内容。
#!/bin/bash
#@filename checkAddWord.sh
#allword.txt 存放总词库(每行一个)
#newword.txt 存放新增词(每行一个)
#newword.add.txt 在cygwin中执行sh checkAddWord.sh后,可新增词存入此文件
#唯一化总库
cat allword.txt | sort | uniq | sed -e "s/^\s*\xEF\xBB\xBF//g" | sed -e "{N;s/\r//g}" > allword.tmp.txt
mv allword.tmp.txt allword.txt
#唯一化新词库
cat newword.txt | sort | uniq | sed -e "s/^\s*\xEF\xBB\xBF//g" | sed -e "{N;s/\r//g}" > newword.tmp.txt
mv newword.tmp.txt newword.txt
#得到已使用词库
cat allword.txt newword.txt | sed -e "{N;s/\r//g}" | sort | uniq -c | grep "^\s*[2-9] " | sed -e "s/^\s*[2-9]\s//g" | sed -e "{N;s/\r//g}" | sed -e "s/^\s*\xEF\xBB\xBF//g" > usedword.txt
#得到新词库
cat newword.txt usedword.txt | sed -e "{N;s/\r//g}" | sort | uniq -c | grep "^\s*1 " | sed -e "s/^\s*1\s//g" | sed -e "s/^\s*\xEF\xBB\xBF//g" | sed -e "{N;s/\n/\r\n/g}" > newword.add.txt
#删除已使用词库
rm -rf usedword.txt
echo "如下关键词可新增:"
cat newword.add.txt
更多相关内容 -
导入线上so库文件。通过将so文件从apk中取出放到服务器上运行时下载并导入极大的减小apk的大小。本实例设定...
2019-07-30 10:02:51导入线上so库文件。通过将so文件从apk中取出放到服务器上运行时下载并导入极大的减小apk的大小。本实例设定so文件在github上.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。 -
linux中快速列出文件列表的多种方法总结
2021-01-10 05:57:20最近在工作中碰到一个很棘手的问题,需要读取出ubuntu系统中某个目录下所有文件,由于服务器中存储的文件实在太多,导致此过程效率十分低下,动辄需要等待一个小时之久,还只是一个目录。于是如何快速获取文件列表便... -
Delphi经典图标,从delphi资源文件.res中提取出来的所有图标.ico文件
2021-01-11 11:55:42Delphi经典图标,从delphi资源文件.res中提取出来的所有图标.ico文件 -
python读取csv文件指定行的2种方法详解
2020-09-17 23:04:41主要介绍了python读取csv文件指定行的方法详解,需要的朋友可以参考下 -
在线导入so库文件
2016-01-07 22:16:29导入线上so库文件。通过将so文件从apk中取出放到服务器上,运行时下载并导入,极大的减小apk的大小。本实例设定so文件在github上。 -
C++使用htslib库读入和写出bam文件的实例
2021-01-01 01:32:19有时候我们需要使用C++处理bam文件,比如取出read1或者read2等符合特定条件的序列,根据cigar值对序列指定位置的碱基进行统计或者对序列进行处理并输出等,这时我们可以使用htslib库。htslib可以用来处理SAM, BAM,... -
如何利用python web框架做文件流下载的实现示例
2020-12-17 13:10:36hello 大家好, 前不久公司里有个需求,把时序数据库中的日志下载到本地. 大家都知道. 数据库里的数据 都是存在数据库里的(废话)....1: 取出数据, 我们默认为json文件吧 2: 在response中加入指定的header 3: 将数据返 -
从100亿条记录的文本文件中取出重复数最多的前10条
2017-11-03 10:04:24假设有100亿个这样的 ip 地址存在文件中 这个文件大小大约是 100GB 问题:要统计出100亿个 ip 中,重复出现次数最多的前10个分析100GB 几乎不可能一次加载进内存进行操作,所以必须要拆分 那么可以利用分治的思想...场景
哈希分治法
这是一个 ip 地址 127.0.0.1
假设有100亿个这样的 ip 地址存在文件中
这个文件大小大约是 100GB
问题:要统计出100亿个 ip 中,重复出现次数最多的前10个分析
100GB 几乎不可能一次加载进内存进行操作,所以必须要拆分
那么可以利用分治的思想,把规模大的问题化小,然后解决各个小的问题,最后得出结果。实现思路
- ipv4 地址是一个 32 位的整数,可以用 uint 保存。
- 我先设计一个哈希函数,把100个G的文件分成10000份,每份大约是 10MB,可以加载进内存了。
例如:我设计一个简单的哈希函数是 f(ip) = ip % 10000,(ip 是个32位整数) 那么 5 % 10000 = 5,不管 5 在哪个地方 5 % 10000 的结果都是 5,这就保证了相同的 ip 会被放在同一个子文件中,方便统计,相同的元素经过同一个哈希函数,得出的哈希值是一样的。 那么我把100亿个 ip,都进行 ip % 10000 的操作,就完成了 100GB 文件分解成 10000个子文件的任务了。当然实际中哈希函数的选取很重要,尽量使得元素分布均匀,哈希冲突少的函数才是最好的。
记住,我把上面这个分解的过程叫做 Map,由一台叫 master 的计算机完成这个工作。
10MB 的小文件加进内存,统计出出现次数最多的那个ip
10MB 的小文件里面存着很多 ip,他们虽然是乱序的,但是相同的 ip 会映射到同一个文件中来! 那么可以用二叉树统计出现次数,二叉树节点保存(ip, count)的信息,把所有 ip 插入到二叉树中,如果这个 ip 不存在,那么新建一个节点, count 标记 1,如果有,那么把 count++,最终遍历一遍树,就能找出 count 最大的 ip 了。
我把这个过程叫做 Reduce,由很多台叫 worker 的计算机来完成。
每个 worker 至少要找出最大的前10个 ip 返回给 master,master 最后会收集到 10000 * 10 个 ip,大约 400KB,然后再找出最大的前 10 个 ip 就可以了。
最简单的遍历10遍,每次拿个最大值出来就可以了,或者用快速排序,堆排序,归并排序等等方法,找出最大前 k 个数也行。MapReduce
我刚刚除了介绍了一种海量数据的哈希分治算法之外,还穿插了一个谷歌的 MapReduce 分布式并行编程模型,原理就是上面说的那些了,有兴趣的可以去详细了解。
哈希函数是什么?哈希函数是把大空间的元素映射到一个小空间里。
-
【Python】用pandas库实现取出csv表格的指定行列
2021-01-30 16:08:17一、pd.read_csv() 、to_csv() 之 常用参数 ...作用:将csv文件读入并转化为数据框形式 1.filepath_or_buffer:(这是唯一一个必须有的参数,其它都是按需求选用的) 文件所在处的路径 2.sep: 指定分隔一、pd.read_csv() 、to_csv() 之 常用参数
参考自:https://www.cnblogs.com/wyy1480/p/10322336.html
或查看https://blog.csdn.net/weixin_44056331/article/details/89366105
(一)pd.read_csv()
作用:将csv文件读入并转化为数据框形式
1.filepath_or_buffer:(这是唯一一个必须有的参数,其它都是按需求选用的)
文件所在处的路径2.sep:
指定分隔符,默认为逗号’,’3.delimiter : str, default None
定界符,备选分隔符(如果指定该参数,则sep参数失效)4.header:int or list of ints, default ‘infer’
指定哪一行作为表头。默认设置为0(即第一行作为表头),如果没有表头的话,要修改参数,设置 header=None5.names:
指定列的名称,用列表表示。一般我们没有表头,即header=None时,这个用来添加列名就很有用啦!6.index_col:
指定哪一列数据作为行索引,可以是一列,也可以多列。多列的话,会看到一个分层索引7.prefix:
给列名添加前缀。如prefix=“x”,会出来"x1"、“x2”、"x3"酱纸8.nrows : int, default None
需要读取的行数(从文件头开始算起)9.encoding:
乱码的时候用这个就是了,官网文档看看用哪个:
[ https://docs.python.org/3/library/codecs.html#standard-encodings]10.skiprows : list-like or integer, default None
需要忽略的行数(从文件开始处算起),或需要跳过的行号列表(从0开始)。
(二)to_csv()
作用:将数据框写入本地电脑,保存起来
参数解析:
1.path_or_buf:字符串,放文件名、相对路径、文件流等;2.sep:字符串,分隔符,跟read_csv()的一个意思
3.na_rep:字符串,将NaN转换为特定值
4.columns:列表,指定哪些列写进去
5.header:默认header=0,如果没有表头,设置header=None,表示我没有表头呀!
6.index:关于索引的,默认True,写入索引
二、实现取出csv表格的指定行列
参考自:https://blog.csdn.net/qq_22592457/article/details/107801286list_a = np.arange(2) df = pd.read_csv('qunar_freetrip.csv',index_col=0,nrows=2,usecols=list_a)
运行结果:
-
使用java语言向oracle数据库中存入、取出图片及文件
2015-09-20 13:42:38其实,向数据库中存图片及其他任何文件都是一样的方法,都是用IO流以二进制的方式存入和取出的,本质上跟操作IO流没有什么差别,只是多了一个数据库访问而已。一下程序是我写的两个小Demo,一个存入文件,一个取出...其实,向数据库中存图片及其他任何文件都是一样的方法,都是用IO流以二进制的方式存入和取出的,本质上跟操作IO流没有什么差别,只是多了一个数据库访问而已。一下程序是我写的两个小Demo,一个存入文件,一个取出文件,没有任何逻辑,仅供参考。
目录结构:
数据库表结构:
数据库工具:create table userimg( id number(8) primary key, pic blob );
package com.lym.util; import java.io.File; import java.io.IOException; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import java.util.Properties; import org.apache.commons.dbcp.BasicDataSource; /** * 数据库工具类 * * @author 刘彦民 2015年9月19日 下午11:08:28 */ public class DBUtil { //数据库连接池 private static BasicDataSource ds; /** * 初始化数据库配置 */ static{ Properties config = new Properties(); String path = "com"+File.separator+"lym"+File.separator+"config"+File.separator+"dbconfig.properties"; try { config.load(DBUtil.class.getClassLoader().getResourceAsStream(path)); } catch (IOException e) { e.printStackTrace(); } String driver = config.getProperty("jdbc.driver"); String url = config.getProperty("jdbc.url"); String username = config.getProperty("jdbc.username"); String password = config.getProperty("jdbc.password"); int maxActive = Integer.parseInt(config.getProperty("oracle.maxActive")); int maxWait = Integer.parseInt(config.getProperty("oracle.maxWait")); ds = new BasicDataSource(); ds.setDriverClassName(driver); ds.setUrl(url); ds.setUsername(username); ds.setPassword(password); ds.setMaxActive(maxActive);//数据库的最大连接数 ds.setMaxWait(maxWait);//数据库的延时等待时间 } /** * 连接数据库 * @return * @throws Exception */ public static Connection getConnection() throws Exception { try{ return ds.getConnection(); }catch(Exception e){ System.out.println("数据库连接失败!"); throw e; } } /** * 关闭数据库 * @param conn * @param stat * @param rs * @throws Exception */ public static void close(Connection conn, Statement stat, ResultSet rs) throws Exception { try { if (conn != null) conn.close(); if (stat != null) stat.close(); if (rs != null) rs.close(); } catch (Exception e) { System.out.println("数据库关闭失败!"); throw e; } } }
jdbc.driver=oracle.jdbc.OracleDriver jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl jdbc.username=scott jdbc.password=tiger oracle.maxActive=5 oracle.maxWait=5000
将图片插入到数据库中:package com.lym.test; import java.io.FileInputStream; import java.sql.Connection; import java.sql.PreparedStatement; import com.lym.util.DBUtil; /** * 把图片或文件保存到数据库中 * * @author 刘彦民 2015年9月20日 上午11:46:56 */ public class JDBCDemo2 { /** * 保存方法 * @param filename 文件名称 */ public static void saveImgOrFile(String filename) throws Exception { FileInputStream in = new FileInputStream(filename); Connection conn = null; PreparedStatement ps = null; try{ conn = DBUtil.getConnection(); String sql = "insert into userimg(id,pic) values(seq_userimg_id.NEXTVAL,?)"; ps = conn.prepareStatement(sql); ps.setBinaryStream(1, in, in.available()); ps.execute(); System.out.println("保存成功!"); }catch(Exception e){ System.out.println("保存文件失败!"); throw e; }finally{ DBUtil.close(conn, ps, null); } } public static void main(String[] args) { String filename = "D:/Thread.png"; try { saveImgOrFile(filename); } catch (Exception e) { e.printStackTrace(); } } }
从数据库中读取图片:package com.lym.test; import java.io.FileOutputStream; import java.io.InputStream; import java.sql.Blob; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import com.lym.util.DBUtil; /** * 从数据库中读取文件 * * @author 刘彦民 2015年9月20日 下午12:38:10 */ public class JDBCDemo3 { /** * 取出图片或文件 */ public static void readImgOrFile() throws Exception { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try{ conn = DBUtil.getConnection(); String sql = "select id,pic from userimg where id=?"; ps = conn.prepareStatement(sql); ps.setInt(1, 1); rs = ps.executeQuery(); if(rs.next()){ FileOutputStream out = new FileOutputStream("T.png"); Blob blob = rs.getBlob("pic"); InputStream in = blob.getBinaryStream(); byte[] data = new byte[1024*10]; int len = -1;//每次读取的字节数 while((len = in.read(data)) != -1){ out.write(data, 0, len); } out.close(); in.close(); System.out.println("文件读取完毕!"); } }catch(Exception e){ System.out.println("读取文件失败!"+e.getMessage()); throw e; }finally{ DBUtil.close(conn, ps, rs); } } public static void main(String[] args) { try { readImgOrFile(); } catch (Exception e) { e.printStackTrace(); } } }
-
取csv文件中的多列保存到新的csv中
2020-12-24 15:43:47本次处理是针对多个csv,分别取每个文件的多列,再逐个保存到新的csv中 提示:以下是本篇文章正文内容,下面案例可供参考 一、直接上代码 代码如下 # !/user/bin/env python3 # -*- coding: utf-8 -*- import os ... -
动态库DLL文件的动态调用和静态调用
2020-06-04 20:50:51库文件一般指计算机上的一类文件,分两种,一种是静态库,另一种是动态库即DLL(Dynamic Link Library)文件,又叫动态链接库文件。静态库和动态库的区别是:静态库在程序的链接阶段被复制到了程序中;动态库在链接... -
pip命令也支持扩展名为.whl的文件直接安装Python扩展库。(2.0分)_学小易找答案
2021-03-06 05:38:02(2.6分)【填空题】____(telnet/console)可以让管理员从网络中某台电脑登录到交换机进行配置。【填空题】已知列表 x = [1, 2],那么执行语句 x.append([3]) 之后,x的值为__。(2.6分)【单选题】以下哪一个表达式不能... -
利用Python(netCDF4库)读取.nc文件(NetCDF气象数据文件)的基本操作
2021-01-30 14:59:12NetCDF(network Common Data Form)网络... 这里采用python的一个专门用来处理.nc文件的库–netCDF4 该库的安装直接: pip install netCDF4 这个库玩起来稍微比Pandas复杂一些。 下面以全球降水量数据为例进行 -
用Qt写的加密解密库AES加密
2020-04-11 09:39:31//从文件中读取出内容 QFile file("D:\\testMod\\Toolpath\\top-mark2-1.900"); if (!file.open(QFile::ReadOnly | QFile::Text)) return 0; QByteArray ba = file.readAll();//文件内容 file.... -
vcglib库的入坑体验(读取obj文件并显示)
2019-11-24 20:50:59本文使用vcglib库进行读取obj文件(其他各种3d模型格式也是同样的方法)并显示,但是目前仍然遇到一些问题没有解决:读取的纹理信息全部缺失(读出来全部为0,因此下图并没有贴纹理),查了很久真心不知道为什么,... -
引用多个第三方库有重复文件的解决办法
2018-09-29 17:11:04一、找到重复的库文件 二、打开终端, 并cd 到文件夹下, 使用 lipo -info libALMovie.a (libALMovie.a替换为自己的文件名称)查看该文件下的架构信息 三、分平台逐步做以下步骤: mkdir armv7:创建临时文件夹 ... -
C语言 目标文件和可执行文件(ELF文件)
2019-05-15 18:55:151.C语言创建程序 1.1C语言创建(分为4个步骤) 编辑 ...编译器的输出结果成为目标代码,存放它们的文件称为目标文件。扩展名为.o或者.obj。 (该部分编译是指汇编器编译汇编语言或者编译器编译... -
linux如何安装中文字体库
2021-06-22 18:48:26Linux字体文件放在/usr/share/font/,只要将字体文件拷贝到这里就可以了。 这里示例安装Windows的所有字体。 1,新建路径存放字体库:/usr/share/fonts/ 2,进入Windows下> 的字体库目录c:\windows\Fonts。复制... -
Git仓库文件的几种状态
2019-04-03 16:47:27前言 博主github ... git库所在的文件夹中的文件大致有4种状态 Untracked: 未跟踪, 此文件在文件夹中, 但并没有...文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如... -
用python的pandas库对CSV格式的文件进行简单的统计分析操作
2018-09-08 21:11:10首先我使用的是jupyter notebook,要实现python的pandas库对CSV文件的操作,首相肯定需要导入库,然后就是要拥有一个CSV文件的样本啦,因为CSV文件的数据样本很多人可能没有,所以我是直接搜索的成绩单样本,然后写... -
PHP将从数据库取出的数据导出为excel文件
2018-05-31 10:09:54需先安装spreadsheet第三方...//取出要导出的值 $id = I('id'); $result=$this->getReportData($id); //验证值是否存在 if (empty($result)) { return [false, '未获取到相关表格数据!']; } vendo... -
Qt中pro文件从相对路径导入库
2017-02-16 20:00:13Qt中pro文件从相对路径导入库Qt工程中有lib、dll、a、so等文件需要导入时,有时需要指定路径。...那么,如何在Qt pro文件中通过相对路径导入库呢。代码LIBS += -L ./ \ -L ./libpath/ \ -l mylib \ -l mylib2 LI -
makefile编写、GDB调试、so库文件生成
2014-09-22 21:31:54.SUFFIXES:.c .o //.c和.o建立关联 CC=gcc SRCS=hello.c\ add.c //同时编译两个.c文件 OBJS=$(SRCS:.c=.o)//ORJS=hello.o add.o EXEC=hello start: $(OBJS) //依赖hello.o add.o $(CC) - -
如何引用自定义标签库中的tld文件
2015-11-27 17:29:10在JSP中使用标签是很平常的事情,在制作自定义...在web.xml中怎么定义tld文件的位置? 以下是具体的分析 Ø Taglib的使用: 首先是在头部申明taglib, uri必须是web.xml定义的,或者是原始tld文件定义的。 -
通过ffi在nodejs中调用动态链接库(.so文件)
2016-05-03 20:51:38通过ffi在nodejs中调用C接口 概述 获取C接口的指针内容 ...需要将C源码build成动态链接库以供调用,在Linux下将C源码build成.so文件,在windows下build成.dll文件。 获取C接口的指针内容 异步调用 实际案例 -
python下pandas库中读取指定行或列数据(excel或csv)
2022-03-19 18:10:09找出指定的行和指定的列 data.iloc[:,:2] #即所有行,前两列的数据 在规定范围内找出符合条件的数据 data.iloc[:10,:][data....6000] ...参考python下pandas库中读取指定行或列数据(excel或csv) ... -
一、通过requests库爬取数据并保存为csv文件
2020-03-28 12:32:34import json data_json = json.loads(r.text) data_json.keys() 我们可以看出在data中存放着我们需要的数据,因此我们取出数据。 data = data_json['data'] data.keys() 数据中总共有四个键,每个键存储着不同的... -
集成两方sdk出现库文件冲突解决
2016-05-04 08:54:181.首先把其中一个冲突的库文件拷贝到一个新的文件夹里,用命令cd切换到当前文件夹,用 lipo -info libx.a(这个.a文件就是冲突的库文件名)查看是否支持多平台,例如armv7,arm64等,如果支持多平台,需要我们逐一进行...