首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 系统运维 >

批改文本文件中的word

2013-01-08 
修改文本文件中的word实验室干活儿,突然有需求,要修改一个文件夹下N个文件(我也不知道有多少个,木有数过)

修改文本文件中的word
实验室干活儿,突然有需求,要修改一个文件夹下N个文件(我也不知道有多少个,木有数过)中的同一个word,so,写了一个这个玩意儿。。。欢迎讨论和拍砖!发现自己要多看看Python的doc了。。。

#! /usr/bin/env python## This is .py file for modifying words in a directory## Author: luotuo# Date: 2012.12.26#import osimport sysdef print_usage():    print "The Usage:"    print "./modify_words argv1 argv2 argv3"    print "Here, argv1 is the directory or file you want to modify"    print "argv2 is the word you want to modify"    print "argv3 is the new word you want to use"    def traversal_dir(dir, old_word, new_word):    dir_list = os.listdir(dir)    for l in dir_list:        if os.path.isfile(os.path.join(dir, l)):            # Open it and replace            path = os.path.join(dir, l)            replace_word(path, old_word, new_word)        else:            path = os.path.join(dir, l)            traversal_dir(path, old_word, new_word)def replace_word(file, old_word, new_word):    try:        f = open(file, 'r')        path = os.path.dirname(file)        filename = "/temp_" + os.path.basename(file)        filename = path + filename        f_temp = open(filename, 'w')        # FIXME: It can be optimized later        for line in f.readlines():            line = line.replace(old_word, new_word)            if line:                f_temp.write(line)        f.close()        name = "/" + os.path.basename(file)        os.remove(file)        f_temp.close()        os.rename(filename, path+name)    except:        print "There is something wrong!"def main(argv):    # check sys.argv    # argv[0]: directory or file    # argv[1]: old words    # argv[2]: new words    if len(argv) != 3:        print "The arguments are wrong!"        print_usage()        sys.exit(1)    else:        # handle it        dest = argv[0]        old_word = argv[1]        new_word = argv[2]        # check if the argv[0] is a directory or not        if os.path.isdir(dest):            # Traversal the directory            traversal_dir(dest, old_word, new_word)        else:            # check if the argv[0] is a file or not            if os.path.isfile(dest):                # Open it and replace the word                replace_word(dest, old_word, new_word)            else:                print_usage()                sys.exit(1)if __name__ == '__main__':    main(sys.argv[1:])

热点排行