python实现大文本文件分割
本文实例为大家分享了python实现大文本文件分割的具体代码,供大家参考,具体内容如下
开发环境
Python2
实现效果
通过文件拖拽或文件路径输入,实现自定义大文本文件分割。
代码实现
#coding:gbk
importos,sys,shutil
is_file_exits=False
whilenotis_file_exits:
files_list=[]
if(len(sys.argv)==1):
print('请输入要切割的文件完整路径:')
files_path=raw_input().strip()
forstr_file_pathinfiles_path.split(''):
if(str_file_path.strip()==''):
continue
if(notos.path.exists(str_file_path.strip())):
print(str_file_path.strip()+'文件路径不存在,请重新输入!')
is_file_exits=False
break
else:
files_list.append(str_file_path.strip());
is_file_exits=True
else:
forstr_file_pathinsys.argv[1:len(sys.argv)]:
if(str_file_path.strip()==''):
continue
if(notos.path.exists(str_file_path.strip())):
print(str_file_path.strip()+'文件路径不存在,请重新输入!')
is_file_exits=False
break
else:
files_list.append(str_file_path.strip());
is_file_exits=True
print('待切割文件:'+str(files_list))
is_continue=False
whilenotis_continue:
print('请输入要切割的文件个数:')
str_files_count=raw_input()
ifstr_files_count.isdigit():
is_continue=True
else:
print('请输入正确的数字!')
forfile_pathinfiles_list:
split_file_path=''
total_lines_count=0
lines_count=0
files_count=int(str_files_count)
print('正在统计文本行数.....')
total_lines_count=len(open(file_path,'rU').readlines())
print('文本总行数:'+str(total_lines_count))
iffiles_count>total_lines_count:
print('文本太小,不值得分割!')
sys.exit()
(filepath,filename)=os.path.split(file_path);
(filepathname,extension)=os.path.splitext(file_path)
ifos.path.exists(filepathname):
shutil.rmtree(filepathname)
os.mkdir(filepathname)
lines_count=int(total_lines_count/files_count)
mod_count=total_lines_count%files_count
print('正在进行文件分割.....')
line_num=0
file_num=0
temp=-1
forlineinopen(file_path,'rU').readlines():
iffile_num
源码地址
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。