文本分析--遍历文件夹和读写文件

来源:互联网 发布:关口知宏中国铁道记行 编辑:程序博客网 时间:2024/05/21 19:48

分析:
1、读取指定目录下的所有文件
2、读取指定文件,输出文件内容
3、创建一个文件夹,并将内容放到指定文件中

输入文件存放样例:
输入文件夹News_split下的所有文件:
这里写图片描述

输出文件存放样例:
创建一个文件夹News_split_cut,并将文件保存到文件夹下:
这里写图片描述

实现:

# -*-coding:utf-8-*-import sysimport reimport codecsimport osimport shutilimport jiebaimport jieba.analyse"""    分词处理,主要就是进行分词操作"""# 导入自定义词典jieba.load_userdict('user_dict.txt')jieba.load_userdict('name_dict.txt')stopwords = {}.fromkeys([line.rstrip() for line in open('stopkey_zh.txt')])def read_file_cut():    # 创建文件路径    path = "News_split\\"  # 输入文件路径    respath = "News_split_cut\\"  # 输出文件路径    if os.path.isdir(respath):        shutil.rmtree(respath, True)    os.makedirs(respath)    num = 2    while num <= 271:        # 读取文件夹中的文件        name = "News_" + str(num)        fileName = path + str(name) + ".txt"        resName = respath + str(name) + ".txt"        source = open(fileName, 'r')        if os.path.exists(resName):            os.remove(resName)        result = codecs.open(resName, 'w', 'utf-8')        line = source.readline()        line = line.rstrip('\n')        # 分词处理        while line != "":            line = unicode(line, "utf-8")            seglist = jieba.cut(line, cut_all=False)  # 精确模式            output = ' '.join(list(seglist))  # 空格拼接            print type(output)            # 去除停用词            final = ''            for out in output:                out = out.encode('utf-8')                if out not in stopwords:                    final += out            print final            print type(final)            result.write(final.decode('utf8') + '\r\n')  # 输出内容            line = source.readline()        else:            print 'End file: ' + str(num)            source.close()            result.close()        num = num + 1    else:        print 'End All'if __name__ == '__main__':    read_file_cut()

通用方法:
上述代码确定了文件名,这里通过读取文件夹下的任意文件来进行文件的读写。

# -*-coding:utf-8-*-import osimport shutil"""    读取文件夹下的所有文件:        1、通过文件夹路径,进入文件夹下        2、读取文件夹下的所有文件名称        3、文件夹路径+文件名称 = 文件路径,进入到文件中,读取文件""""""    写入文件夹中的文件中:        1、创建文件夹(新建文件夹)        2、新建文件夹+文件名称 = 新文件路径        3、进入到新文件路径,写入文件内容"""# 读取文件夹下的所有文件def read_file(folderpath):    pathDir = os.listdir(folderpath)  # 列出文件夹下的文件名称    print pathDir    for file in pathDir:        filepath = folderpath + file  # 进入文件中        f = open(filepath).read()        print f# 先读取文件夹下的所有的文件,再按照文件不同写入到文件夹中def write_file(folderpath, newfolderpath):    # 创建一个文件夹    if os.path.isdir(newfolderpath):        shutil.rmtree(respath, True)    os.makedirs(newfolderpath)    # 读取文件夹中的文件    pathDir = os.listdir(folderpath)    for file in pathDir:        filepath = folderpath + file        f = open(filepath).read()  # 一个一个读取文件内容        # 一个一个的写入文件夹中的文件        newfilepath = newfolderpath+file        result = open(newfilepath, 'w')        result.write(f)if __name__ == '__main__':    folderpath = 'News_split\\'    newfolderpath = 'newfolder\\'    read_file(folderpath)    write_file(folderpath, newfolderpath)
0 0
原创粉丝点击