- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
当我在 Linux 中对一个文件(一个几百万行的 CSV 文件)执行 wc -l
时,它报告的行数低于此 Python 代码显示的行数(简单地迭代超过文件中的行)超过一千。那会是什么原因呢?
with open(csv) as csv_lines:
num_lines = 0
for line in csv_lines:
num_lines += 1
print(num_lines)
我遇到过 wc
报告比上面少一个的情况,这在文件没有终止换行符的情况下是有意义的,因为它看起来像 wc
计算完整行(包括终止换行符),而此代码仅计算任何行。但是相差一千多行会怎样呢?
我不太了解行尾之类的东西,所以也许我误解了 wc
和这个 Python 代码是如何计算行数的,所以也许有人可以澄清一下。在 linux lines counting not working with python code它说 wc
通过计算文件中 \n
字符的数量来工作。但是,这段 Python 代码到底在做什么?
有没有一种方法可以调和数字上的差异,从而找出究竟是什么原因造成的?就像一种从 Python 计算行数的方法,其计数方式与 wc
相同。
该文件可能是在与 Linux 不同的平台上生成的,不确定这是否相关。
最佳答案
由于您使用的是 print(num_lines)
我假设您使用的是 Python 3.x,我以 Python 3.4.2 为例。
行数不同的原因在于 open(<name>)
打开的文件两者都算 \r
和 \n
字符作为单独的行以及\r\n
组合( docs ,通用换行符 部分)。这导致以下情况:
>>> with open('test', 'w') as f:
f.write('\r\r\r\r')
>>> with open('test') as f:
print(sum(1 for _ in f))
4
同时 wc -l
给出:
$ wc -l test
0 test
\r
字符在旧的 Macintosh 系统中用作换行符。
如果您只想在 \n
上拆分字符,使用 newline
open
的关键字参数:
>>> with open('test', 'w') as f:
f.write('\r\r\r\r')
>>> with open('test', newline='\n') as f:
print(sum(1 for _ in f))
1
1
来自你已经提到的事实。没有一个\n
文件中的字符所以 wc -l
返回 0,Python 将其计为一行。
关于返回比 Linux `wc -l` 高得多的行数的 Python 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27998980/
我正在寻找一种方法来创建根据价格选择我的产品的过滤器(选择下拉菜单)。 我知道这样的查询是完全可能的: SELECT * FROM products ORDER BY price ASC SELECT
函数参数中或显示尺寸时(高度,宽度)的顺序是否有约定? 最佳答案 我不知道大量的语言,但我使用过的语言(宽度,高度)。它更适合沿着 (x, y) 坐标线。 关于language-agnostic -
在我的表单中,我让用户输入房间的长度高度和宽度以获得 m2、m3 和瓦特的计算值。但是用户也应该能够直接输入 height 和 m2 来获取值。我尝试了很多语法,但 if else 不能正常工作。我知
我在 Elasticsearch 中创建了一个索引,看起来像 {"amazingdocs":{"aliases":{},"mappings":{"properties":{"Adj Close":{"
我有以下功能,我需要清除数据库中的所有图片列并移动到文件系统。当我一次性完成这一切时,内存太多并且会崩溃。我切换到递归函数并执行 20 次写入和批量操作。 我需要为大约 6 个表执行此操作。我的 Re
我正在编写一个函数来计算 PI 的值,并将其作为 double 值返回。到目前为止,一切都很好。但是一旦函数到达小数点后14位,它就不能再保存了。我假设这是因为 double 有限。我应该怎么做才能继
2020年是中国CDN行业从98年诞生到今天快速发展的第二十四年,相关数据显示,全国感知网速持续上扬,达到了3.29兆/秒,标志着在宽带中国的政策指导下,中国的网速水平正在大步赶上世界发达国家的水平
在 aerospike 集合中,我们有四个 bin userId、adId、timestamp、eventype,主键是 userId:timestamp。在 userId 上创建二级索引以获取特定用
$('#container').highcharts('Map', { title : { text : 'Highmaps basic demo'
有没有办法显示自定义宽度/高度的YouTube视频? 最佳答案 在YouTube网站上的this link中: You can resize the player by editing the obj
我使用 Highcharts ,我想在 Highcharts 状态下悬停时制作动态不同的颜色。 正如你可以看到不同的颜色,这就是我做的 var usMapChart , data = [] ; va
在所有节点上运行 tpstats 后。我看到很多节点都有大量的 ALL TIME BLOCKED NTR。我们有一个 4 节点集群,NTR ALL TIME BLOCKED 的值为: 节点 1:239
我发现 APC 上存在大量碎片 (>80%),但实际上性能似乎相当不错。我有 read another post这建议在 wordpress/w3tc 中禁用对象缓存,但我想知道减少碎片是否比首先缓存
对于我的脚本类(class),我们必须制作更高/更低的游戏。到目前为止,这是我的代码: import random seedVal = int(input("What seed should be u
我发现 APC 上存在大量碎片 (>80%),但实际上性能似乎相当不错。我有 read another post这建议在 wordpress/w3tc 中禁用对象缓存,但我想知道减少碎片是否比首先缓存
对于我的脚本类(class),我们必须制作更高/更低的游戏。到目前为止,这是我的代码: import random seedVal = int(input("What seed should be u
我已经 seen >2 字节的 unicode 代码点,如 U+10000 可以成对编写,如 \uD800\uDC00。它们似乎以半字节 d 开头,但我只注意到了这一点。 这个 split Actio
有人可以帮我理解为什么我的饼图百分比计算不正确吗?看截图: 根据我的计算,如 RHS 上所示,支出百分比应为 24.73%。传递给 Highcharts 的值如下:- 花费:204827099.36-
我阅读了有关该问题的所有答案,但我还没有找到任何解决方案。 我有一个应用程序,由我的 api 服务器提供。 Wildfly 8.1 和 Mysql 5.6。当查看时间到来时(Wildfly 服务器连接
我正在用选定的项目创建圆形导航。当用户单击任何项目时,它将移动到定义的特定点。一切都很好,除了当你继续点击项目时,当动画表现不同并且项目在 360 度圆中移动并且它被重置直到你重复场景时,我希望它
我是一名优秀的程序员,十分优秀!