IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 【自然语言处理】python 批量读txt文件的方法 -> 正文阅读

[Python知识库]【自然语言处理】python 批量读txt文件的方法

1 读txt文件

下面代码实现的是:将一个txt文件内每行内容都存放到列表contents中。
有一点强调,为什么要在路径前加'r'
其实r的作用和\\的作用一样,都是为了防止程序将\当作是转义字符,所以r\\在写的时候使用一种方法就可以,当然如果路径是/,那么就不需要涉及这些了。

import operator
contents = []   # 存放txt文件每行的内容
filename = r"C:\Users\Lenovo\Desktop\大三上\nlp实验室\python处理\21.8.29 test.txt"
with open(filename, 'r') as f:
    for line in f.readlines():
        contents.append(line)
f.close()

2 批量读文件

批量读文件的核心就是学会拼凑文件名,只要掌握了这个批量读取就不是问题。
现在我的文件夹结构如下图(我要读这个大文件夹下面的所有小文件夹里的所有txt文件):
在这里插入图片描述
我的实现代码如下:(结合1)
注意有一个细节:encoding最开始我选用'utf-8'时不知道为什么不行,后来改成了下面的'ISO-8859-1'

import os
import operator

contents = []   # 存放txt文件每行的内容
path1 = r"C:\Users\Lenovo\Desktop\acl2021"
files_1 = os.listdir(path1)   # 得到path1文件夹下所有文件的名称
for file in files_1:
    path2 = path1 + "\\" + file
    files_2 = os.listdir(path2)	# 得到path2文件夹下所有文件的名称
    for file2 in files_2:
        pos = path2 + "\\" + file2  # filename
        with open(pos, 'r', encoding='ISO-8859-1') as f:     # encoding='utf-8'不行
            for line in f.readlines():
                contents.append(line)
        f.close()

这样,我大文件夹里767个txt文件的所有内容就存到了contents列表中,接下来就可以具体处理了。

3 个人记录

2021.9.29 抽取动词总代码

import os
import operator
import xlwt
from nltk import word_tokenize
from nltk import pos_tag
from nltk.stem import WordNetLemmatizer

# 读txt
contents = []   # 存放txt文件每行的内容
path1 = r"C:\Users\Lenovo\Desktop\acl2021"
files_1 = os.listdir(path1)   # 得到path1文件夹下所有文件的名称
for file in files_1:
    path2 = path1 + "\\" + file
    files_2 = os.listdir(path2)
    for file2 in files_2:
        pos = path2 + "\\" + file2  # filename
        with open(pos, 'r', encoding='ISO-8859-1') as f:     # encoding='utf-8'不行
            for line in f.readlines():
                contents.append(line)
        f.close()

# 动词统计
dic = {}
wnl = WordNetLemmatizer()
for line in contents:           # 每一行
    line = line.lower()         # 先小写处理
    tokens = word_tokenize(line)    # 标记解析
    tags = pos_tag(tokens)          # 词性标注
    v_tags = {'VB', 'VBD', 'VBG', 'VBN', 'VBP', 'VBZ'}      # 动词集
    for word, pos in tags:
        if pos in v_tags:
            word = wnl.lemmatize(word, 'v')     # 词性还原
            if word not in dic:
                dic[word] = 1
            else:
                dic[word] = dic[word] + 1

res = sorted(dic.items(), key=operator.itemgetter(1), reverse=True)     # 排序的结果是list类型
# for item in res:
#     if item[1] > 3:
#         print(item)

# 写入excel
wb = xlwt.Workbook()
sh = wb.add_sheet('test')
idx = 0
for item in res:
    if item[1] > 3:
        sh.write(idx, 0, item[0])
        sh.write(idx, 1, item[1])
        idx = idx + 1
    else:
        break

wb.save(r"C:\Users\Lenovo\Desktop\动词筛选2.xls")
print("写入完成")

4 参考

[1] python操作txt文件中数据教程[1]-使用python读写txt文件
[2] python 批量读取文件夹中的多个TXT文件

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-30 12:01:04  更:2021-08-30 12:01:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 12:43:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码