`
dacoolbaby
  • 浏览: 1254352 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

一个简单的文件合并脚本

阅读更多

有时候通过MR跑数会生成N个小文件。

手工合并实在太讨嫌,所以就写了个Python自动合并脚本。

 

import os
import os.path
import sys

if len(sys.argv)<2:
	print 'merge file script must have enough parameters!'
	sys.exit()


rootdir = sys.argv[1]

#rootdir = r'D:\testing'                                   # 指明被遍历的文件夹

rootdir = rootdir.replace('\\','/')

if rootdir[len(rootdir)-1] == '/':
	rootdir = rootdir[0:len(rootdir)-1]
	
file_output = open( rootdir + '/' + 'merge.txt', 'w')

for parent,dirnames,filenames in os.walk(rootdir):    #三个参数:分别返回1.父目录 2.所有文件夹名字(不含路径) 3.所有文件名字	
	
	'''for dirname in dirnames:      #输出文件夹信息                 
		print "parent is:" + parent
		print  "dirname is" + dirname
	'''
	
	for filename in filenames:   #输出文件信息  
				
		if filename == 'merge.txt':    #获取文件不等于输出文件自己
			continue
		if filename.startswith('.'):  #过滤隐藏文件
			continue 
			
		print "filename :" +filename    #记录遍历的文件
		
		fi = open(rootdir + '/' + filename,'r')
		while True:
			s = fi.read(16*1024)
			#if not s:
			if s is None or s == "":
				break
			file_output.write(s)
		file_output.write('\n')
		
file_output.close()

  

快速文件拷贝参考高手的实现方式,http://bbs.csdn.net/topics/390440169

文件读取,按16k缓存进行。

 

最后输出一个文件。

 

使用方式:

python merger.py d:\testing

 

在d盘下的testing文件夹中将所有的文件,文件夹不会遍历,进行合并。

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics