python - 仅在 python 中使用 csv reader 读取前 N 行 csv 文件
问题描述
我正在将多个 csv 文件的第二列中包含的文本添加到一个列表中,以便稍后对列表中的每个项目执行情绪分析。我的代码目前完全适用于大型 csv 文件,但我对列表中的项目执行的情绪分析需要太长时间,这就是为什么我只想读取每个 csv 文件的前 200 行。代码如下所示:
import nltk, string, lumpy
import math
import glob
from collections import defaultdict
columns = defaultdict(list)
from nltk.corpus import stopwords
import math
import sentiment_mod as s
import glob
lijst = glob.glob('21cf/*.csv')
tweets1 = []
for item in lijst:
stopwords_set = set(stopwords.words("english"))
with open(item, encoding = 'latin-1') as d:
reader1=csv.reader(d)
next(reader1)
for row in reader1:
tweets1.extend([row[2]])
words_cleaned = [" ".join([words for words in sentence.split() if 'http' not in words and not words.startswith('@')]) for sentence in tweets1]
words_filtered = [e.lower() for e in words_cleaned]
words_without_stopwords = [word for word in words_filtered if not word in stopwords_set]
tweets1 = words_without_stopwords
tweets1 = list(filter(None, tweets1))
如何确保使用 csv 阅读器仅读取每个 csv 文件的前 200 行?
解决方案
最短和最惯用的方法可能是使用itertools.islice
:
import itertools
...
for row in itertools.islice(reader1, 200):
...
推荐阅读
- c# - 为什么我的行进立方体算法会留下洞?
- c# - 有没有办法避免在我的 Extension 方法中传递两个泛型参数?
- python - 在 PyGame 中编写一个在屏幕中心绘制图像的类
- node.js - 无法从节点模块导出变量并在我的 node-express 应用程序中使用该变量
- javascript - 如何让 gulp 函数串联运行?(一饮而尽下载)
- http - NGINX - 错误 502 除非设置了 User-Agent 标头
- laravel - 如何在 Laravel 中通过登录发送消息?
- excel - 从列表中搜索数据并删除行
- wso2 - WSO2 API Manager 无法调用已注册的外部 API。它可能与代理配置问题有关?
- mysql - 数据类型(字段)表上的雄辩关系