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 合并文件的具体实例
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@