Simple python lib, processing excel,mail,textgrid,metadata,wav; using for SurfingTech or others
Project description
surfing_pylib
Description
冲浪科技python 库 公司的Python库都在这个仓库中维护统一管理
Installation
pip install kog_lib
Instructions
-
查看帮助
import kog_lib
kog_lib.help()
kog_lib.help(type)
type in {'excel','textgrid','metadata','wav','fs','utils'}
-
excel读取和写入
实例化: my_excel = kog_lib.Excel(excel_path) 或, my_excel = kog_lib.Excel() my_excel.load(excel_path) 数据读取: my_excel.data = [ [第一行], [第二行], ... [最后一行] ] 写入数据: my_excel.make(data, filename='name1.xls', sheetname='sheet1') data是一个二位的列表,如上述“数据读取”部分的“my_excel.data” 打印内容: my_excel.print(part,n) part: "all" 、"head" 、"tail":全部打印、 从头打印n个、 从尾部打印n个 n: 打印个数
-
textgrid文件操作
类实例化 方式1: my_tg = kog_lib.SFTextGrid() my_tg.load(path) 方式2: my_tg = kog_lib.SFTextGrid(path) 获取有效时长等信息: : t_file, t_effect, t_invalid, n_invalid = my_tg.get_textgrid_stat(re_str) # re_str是正则表达式 : 返回, 总时长、有效时长、无效时长、无效个数 修改textgrid中相关内容 : my_tg.sup_interval(item_ind,interval_ind,type,sup_str) item_ind: item的序号, 0 或者 1 ind_ininterval_indterval:interval的序号,从1开始 type: 修改interval的哪个字段,maxtime、mintime、mark sup_str:修改成sup_str textgrid中speaker检测: : my_tg.check_with_txt(txt_path) txt_path: 记录speaker相关信息的txt文件 先检查textgrid是否有误、在检查txt_path是否正确,最后看textgrid中的speaker是否在txt中 textgrid检查: : my_tg.check():
-
metadata文件操作
实例化: my_metadata = kog_lib.SFMetadata() 此时会实例化一个默认的metadata模板 导入metadata模板: my_metadata.load_template(filepath) 也可以读取现有的metadata文件作为模板 修改metadata文件内容: my_metadata.set_metadata_element(key,value) 如: my_metadata.set_metadata_element("BIR","北美") 获取metadata某个key的值: my_metadata.get_metadata_element(key) 如: value = my_metadata.get_metadata_element("BIR") # value="北美" 生产metadata文件: my_metadata.make_metadata(output) 如: my_metadata.make_metadata("/data/xxxx.metadata")
-
wav音频分析处理
实例化: my_wav = kog_lib.SFWav(wav_path) 或, my_wav = kog_lib.SFWav() my_wav.open(wav_path) 获取主要参数:(声道数、样本宽度、采样率、总帧数) my_wav.getparams() 得到区间内峰值: my_wav.get_peak(selected_channel,start_time,end_time) selected_channel: 要得到哪个声道的数据,默认1声道 start_time: 起始时间,默认0 end_time: 终止时间,默认总时长 切割音频: 从start_time开始且切到end_time时长的音频,保存到output my_wav.cut_wav(output,start_time,end_time,selectedchannel=1) 默认切取第一个声道的信息,保存为单声道音频 其他方法: my_wav.readframes(nframes,start_frame) # 从第几帧开始读取多少帧 my_wav.readframes_bytime(start_time,end_time) # 从第几秒开始读到第几秒
-
filesystem文件系统
实例化:此时会将当前目录挂载到文件系统 root_fs = kog_lib.SFFS() 显示当前服务器配置: root_fs.show_current_server_config() 新增服务器系统配置: root_fs.add_server_config(s_key,s_path) s_key:服务器简称,例如 "SVR1" s_path:服务器路径,例如 "ssh://username:password@192.168.1.104:22" 挂载文件系统: 挂载本机其他路径: root_fs.combine_fs("local_samples","/samples") 挂载ssh远程服务器 root_fs.combine_fs("my_ubuntu","MY_UBUNTU") ps:"MY_UBUNTU"的配置已经add_server_config过了 挂载FTP服务器 root_fs.combine_fs("surfing_ftp","SFTP") ps:"SFTP"的配置已经add_server_config过了 挂载tar和zip文件系统(系统根目录下的压缩包) root_fs.combine_fs("tar_1","/test.tar.gz",write=True,compression="gz") root_fs.combine_fs("zip_1","/test.zip",write=True,compression=0) 挂载文件系统后,可将各文件系统视为根目录下的子目录,可直接进行各种文件操作,如: ***很多操作在root_fs.close()后才会生效*** 返回根目录下列表 my_fs = root_fs.get_combined_fs() my_fs.listdir("/") 打印目录结构 my_fs.tree(path="/",max_levels = 1) 复制 从my_ubuntu复制到tar压缩包内(仅可向新建的tar中写入,及write=True) my_fs.copy("/my_ubuntu/p2.py","/tar_1/1.py",overwrite=True) 在tar中创建多层目录,并向此目录复制文件 my_fs.makedirs("/tar_1/x/xx")(仅可向新建的tar中写入,及write=True) my_fs.copy("/my_ubuntu/p2.py","/tar_1/x/xx/1.py",overwrite=True) 复制 从my_ubuntu复制到zip压缩包内(仅可向新建的zip中写入,及write=True) my_fs.copy("/my_ubuntu/p2.py","/zip_1/1.py",overwrite=True) 在zip中创建多层目录,并向此目录复制文件(仅可向新建的zip中写入,及write=True) my_fs.makedirs("/zip_1/x/xx") my_fs.copy("/my_ubuntu//p2.py","/zip_1/x/xx/1.py",overwrite=True) my_fs.copydir("/my_ubuntu/scripts","/local_current/scripts",create=True) 其他更详细的用法见pyfilesystem2的介绍:
-
utils通用方法
按行读文件: kog_lib.SFUtils.get_file_lines(path) 按行读文件并去重: kog_lib.SFUtils.get_uniq_lines_from_file(path) 列表去重: kog_lib.SFUtils.uniq_lines(lines) 列表写入文件: kog_lib.SFUtils.write_lines(filepath,lines) 行(字符串)切割,并清洗: kog_lib.SFUtils.split_clean_line(line,split_char,begin_re,end_re,clean_chinese) line:要切割的字符串 split_char:以这个字符切分 begin_re: 清洗字符串line头部的正则,默认 儿童英语项目的正则 end_re: 清洗字符串line尾部的正则,默认 儿童英语项目的正则 clean_chinese: 是否清除汉字,默认 清除汉字 根据正则表达式re_str清洗某行: kog_lib.SFUtils.clean_line(line,re_str) 根据正则表达式re_str按行清洗某列表: kog_lib.SFUtils.clean_lines(lines,re_str) 根据正则表达式re_str按行清洗某列表,返回列表元素是(新行,原行)的元组: kog_lib.SFUtils.clean_lines_map_list(line,re_str) 比较两个list,返回A中不再B的元素: kog_lib.SFUtils.diff_list(A,B) 以空格区分,返回某行的词数: kog_lib.SFUtils.get_wordcount_from_line(line) 以空格区分,返回某列表次数: kog_lib.SFUtils.get_wordcount_from_line(lines) 对列表lines分组,每组requaired_lines行,返回组列表的列表: kog_lib.SFUtils.lines_split_2_sublines(lines,requaired_lines) 获取str1到str2的编辑距离: kog_lib.SFUtils.get_edit_distance(str1,str2) 获取str1到str2的编辑步骤: kog_lib.SFUtils.get_edit_ops(str1,str2) 打印str1转换到str2的详细步骤: kog_lib.SFUtils.print_edit_ops(str1,str2) 打印列表: kog_lib.SFUtils.print_lines(lines) 打印字典: kog_lib.SFUtils.print_dict(dict) 批量重命名: kog_lib.SFUtils.modify_name(path,prefix="",suffix="",mode="add",deep=False) path: 修改path路径下文件和文件夹的名称,不含path prefix: 要加的前缀 suffix: 要加的后缀 mode: 模式,add/minus deep: True:深度重命名(遍历path下文件及文件夹) False:仅对path下文件和文件夹进行重命名
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
kog_lib-0.2.3.tar.gz
(23.0 kB
view hashes)
Built Distribution
kog_lib-0.2.3-py3.6.egg
(60.2 kB
view hashes)