论坛首页 编程语言技术论坛

Python合并文本文件

浏览 9157 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-06-07  
整理资料时,整出了高中时读过的一本书,还不错,不过当时是用电子辞典读的,没有书签功能,只能划成一个个的,现在读起来反倒麻烦。

于是就写个脚本把它们合并起来。

# coding gbk
#
# author: GreatGhoul
# email : greatghoul@gmail.com
# blog  : http://greatghoul.iteye.com

import sys,os,msvcrt

def join(in_filenames, out_filename):
    out_file = open(out_filename, 'w+')
    
    err_files = []
    for file in in_filenames:
        try:
            in_file = open(file, 'r')
            out_file.write(in_file.read())
            out_file.write('\n\n')
            in_file.close()
        except IOError:
            print 'error joining', file
            err_files.append(file)
    out_file.close()
    print 'joining completed. %d file(s) missed.' % len(err_files)
    print 'output file:', out_filename
    if len(err_files) > 0:
        print 'missed files:'
        print '--------------------------------'
        for file in err_files:
            print file
        print '--------------------------------'

if __name__ == '__main__':
    print 'scanning...'
    in_filenames = []
    file_count = 0
    for file in os.listdir(sys.path[0]):
        if file.lower().endswith('[all].txt'):
            os.remove(file)
        elif file.lower().endswith('.txt'):
            in_filenames.append(file)
            file_count = file_count + 1
    if len(in_filenames) > 0:
        print '--------------------------------'
        print '\n'.join(in_filenames)
        print '--------------------------------'
        print '%d part(s) in total.' % file_count
        book_name = raw_input('enter the book name: ')
        print 'joining...'
        join(in_filenames, book_name + '[ALL].TXT')
    else:
        print 'nothing found.'
    msvcrt.getch()
   发表时间:2010-06-08  
copy *.txt out.txt
0 请登录后投票
   发表时间:2010-06-08  
zbird 写道
copy *.txt out.txt

这个俺知道,只是练习脚本而已。
0 请登录后投票
   发表时间:2010-06-14  
什么垃圾代码

能不能写的漂亮点[格式,排版,简洁]
0 请登录后投票
   发表时间:2010-06-16  
楼上 你太坏了。
0 请登录后投票
   发表时间:2010-06-16  
rrsy23 写道
什么垃圾代码

能不能写的漂亮点[格式,排版,简洁]


初学而已,你初学的时候,大概还写得不如我呢。
0 请登录后投票
   发表时间:2010-06-16  
rrsy23 写道
什么垃圾代码

能不能写的漂亮点[格式,排版,简洁]


不过,如果你如果愿意花点时间,把这段“垃圾”代码改写的格式,排版,简洁,我倒是很愿意请教。我这段确实很多地方欠考虑。
0 请登录后投票
   发表时间:2010-06-16  
不如论坛里面的各位python大鸟,就以这段代码为蓝本,Python合并文本文件,看看谁写的代码更pythonic吧。
(调用copy *.txt out.txt的方法就算了)
0 请登录后投票
   发表时间:2010-06-19   最后修改:2010-06-20
f = open('all.txt', 'w')
for i in sys.argv[1:]: f.write(open(i).read())
f.close()
0 请登录后投票
   发表时间:2010-07-06  
啊,总算能看明白点楼主的代码。正在窃喜。
就看到是被说成垃圾代码。。
惭愧……
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics