python 合并文件的具体实例


Posted in Python onAugust 08, 2013

支持两种用法:
(1)合并某一文件夹下的所有文件(忽略文件夹等非文件条目)
(2)显示的合并多文件。

import sys
import os
'''
    usage(1): merge_files pathname
              pathname is directory and merge files in pathname directory
    usage(2): merge_files file1 file2 [file3[...]]
'''
FILE_SLIM = (256*(1024*1024)) #256M match 2**n
def merge_files(fileslist,mfname):
    global FILE_SLIM
    p_fp = open(mfname,"wba")
    for file in fileslist:
        with open(file,"rb") as c_fp:
            fsize = os.stat(file).st_size
            count = fsize&FILE_SLIM
            while count>0:
                p_fp.write(c_fp.read(FILE_SLIM))
                fsize -= FILE_SLIM
                count -= 1
            p_fp.write(c_fp.read())
    p_fp.close
def main():
    argc = len(sys.argv) - 1
    fileslist = []
    if argc == 2:
        dir_name = os.path.realpath(sys.argv[1])
        assert(os.path.isdir(dir_name))
        file_dir = os.listdir(dir_name)
        fileslist = [os.path.join(dir_name,file) for file in file_dir if os.path.isfile(os.path.join(dir_name,file))]
        print(fileslist)
    elif argc >=3:
        fileslist = [os.path.realpath(sys.argv[index]) for index in range(1,argc) if os.path.isfile(os.path.realpath(sys.argv[index]))]
    merge_files(fileslist,sys.argv[argc])
if __name__ == '__main__':
    main()
Python 相关文章推荐
使用python绘制人人网好友关系图示例
Apr 01 Python
Python可变参数函数用法实例
Jul 07 Python
Python json 错误xx is not JSON serializable解决办法
Mar 15 Python
Python yield 使用方法浅析
May 20 Python
Python button选取本地图片并显示的实例
Jun 13 Python
python使用rsa非对称加密过程解析
Dec 28 Python
python计算波峰波谷值的方法(极值点)
Feb 18 Python
Python xlrd excel文件操作代码实例
Mar 10 Python
Alpine安装Python3依赖出现的问题及解决方法
Dec 25 Python
使用Python webdriver图书馆抢座自动预约的正确方法
Mar 04 Python
分享7个 Python 实战项目练习
Mar 03 Python
Python Pytorch查询图像的特征从集合或数据库中查找图像
Apr 09 Python
python备份文件以及mysql数据库的脚本代码
Jun 10 #Python
Python 变量类型及命名规则介绍
Jun 08 #Python
Python 字符串操作实现代码(截取/替换/查找/分割)
Jun 08 #Python
python strip()函数 介绍
May 24 #Python
Python的词法分析与语法分析
May 18 #Python
简单文件操作python 修改文件指定行的方法
May 15 #Python
Python代理抓取并验证使用多线程实现
May 03 #Python
You might like
重量级动漫纷纷停播!唯独OVERLORD第四季正在英魂之刃继续更新
2020/05/06 日漫
Smarty foreach控制循环次数的实现详解
2013/07/03 PHP
php读取富文本的时p标签会出现红线是怎么回事
2014/05/13 PHP
php+ajax制作无刷新留言板
2015/10/27 PHP
PHP将身份证正反面两张照片合成一张图片的代码
2017/04/08 PHP
Javascript 布尔型分析
2008/12/22 Javascript
Prototype Selector对象学习
2009/07/23 Javascript
IE 上下滚动展示模仿Marquee机制
2009/12/20 Javascript
JS简单的图片放大缩小的两种方法
2013/11/11 Javascript
jQuery实现单击和鼠标感应事件
2015/02/01 Javascript
Bootstrap轮播插件中图片变形的终极解决方案 使用jqthumb.js
2016/07/10 Javascript
JS简单实现仿百度控制台输出信息效果
2016/09/04 Javascript
canvas 绘制圆形时钟
2017/02/22 Javascript
vue基础之事件简写、事件对象、冒泡、默认行为、键盘事件实例分析
2019/03/11 Javascript
vue动态绑定class的几种常用方式小结
2019/05/21 Javascript
Vue 实现前进刷新后退不刷新的效果
2019/06/14 Javascript
[02:08]DOTA2英雄基础教程 马格纳斯
2014/01/17 DOTA
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
[45:18]2018DOTA2亚洲邀请赛 4.3 突围赛 Optic vs iG 第一场
2018/04/04 DOTA
Python的print用法示例
2014/02/11 Python
深入解析Python中的线程同步方法
2016/06/14 Python
python 同时读取多个文件的例子
2019/07/16 Python
python twilio模块实现发送手机短信功能
2019/08/02 Python
Python3.8对可迭代解包的改进及用法详解
2019/10/15 Python
Python中断多重循环的几种方式详解
2020/02/10 Python
xadmin使用formfield_for_dbfield函数过滤下拉表单实例
2020/04/07 Python
Jupyter notebook设置背景主题,字体大小及自动补全代码的操作
2020/04/13 Python
keras 多任务多loss实例
2020/06/22 Python
EJB的角色和三个对象
2015/12/31 面试题
2014年圣诞节寄语
2014/12/08 职场文书
法学专业求职信范文
2015/03/19 职场文书
公司门卫岗位职责
2015/04/13 职场文书
公司致全体员工的感谢信
2019/06/24 职场文书
在 Golang 中实现 Cache::remember 方法详解
2021/03/30 Python
Python中OpenCV实现查找轮廓的实例
2021/06/08 Python
SQL bool盲注和时间盲注详解
2022/07/23 SQL Server