python - Python CSV阅读器:截断文件的开头?缺少前 44797 行
问题描述
我有一个 .csv 文件,我希望使用 csv 包通过 Python (3.x) 读取。但是,程序会截断文件的开头(前 44797 行)。
有问题的 .csv 文件可以从这个链接下载:https ://www.kaggle.com/dgomonov/new-york-city-airbnb-open-data/downloads/new-york-city-airbnb-open-data .zip/3
file = "C:\\Users\\Owner\\Pictures\\Camera Roll\\new-york-city-airbnb-
open-data\\AB_NYC_2019.csv"
rowsn = []
coln = []
with open(file, encoding="utf8") as csvfile:
csvreader = csv.reader(csvfile)
coln.append(0)
for row in csvreader:
rowsn.append(row)
print("Appending" + str(row))
for q in rowsn:
for r in q:
print(r, end=" ")
print("\n")
我希望将整个文件逐行打印在终端上。但是,前 44797 行没有出现在屏幕上。请帮忙。谢谢。
解决方案
您可以中断并看到第一行的事实意味着您的控制台输出滚动得太快。
保存输出的 shell 有大约 4098 行的缓冲区。如果您打印 50k 行,前 (50.000-4098) 行滚动得如此之快,以至于您看不到它们。缓冲区仅保存最后 4098 行,因此您只能向后滚动。
如果您真的想滚动浏览 500k 行,请给自己时间阅读:
for linecount, q in enumerate(rowsn,1):
for r in q:
print(r, end=" ")
print("\n")
if not linecount % 4000: # every 4000 lines, ask for return press
intput("Hit return...")
现在您必须按大约 126 次左右的回车键...或者您可以研究如何扩大控制台的缓冲区 - 对于默认 Windows 控制台,您可以在此处获得更多提示:如何在 Windows 命令提示符中更改屏幕缓冲区大小从批处理脚本
推荐阅读
- powershell - 运行 Azure Functions 应用时出现间歇性错误消息
- node.js - OrderBy 和 StartAt 具有两个不同的字段 firestore
- javascript - 条纹社会安全号码nodejs
- javascript - 如何定位文件 discord.js v12?
- c# - 如何在 C# 的 Xpath 中使用转义字符,使用其中包含单引号和双引号的文本来查找元素?
- javascript - 即使请求成功,为什么我的 no-cors fetch() 也不行?
- c++ - 创建日历,输出格式问题
- azerothcore - 如何使 fork master 分支与 azerothcore master 分支保持同步
- google-play - 某些用户可能不会在 Play 商店中显示评论的原因
- python - 为什么字符串列表上的字符串连接函数似乎排除了列表中的最后一项?