相关疑难解决方法(0)

如何在Python中廉价地获得行数?

我需要在python中获取大文件(数十万行)的行数.记忆和时间方面最有效的方法是什么?

目前我这样做:

def file_len(fname):
    with open(fname) as f:
        for i, l in enumerate(f):
            pass
    return i + 1
Run Code Online (Sandbox Code Playgroud)

有可能做得更好吗?

python text-files line-count

931
推荐指数
18
解决办法
77万
查看次数

在 Python 中获取文本文件的换行统计信息

我在 git 文件中有一个令人讨厌的 CRLF / LF 冲突,这可能是从 Windows 机器提交的。是否有一种跨平台的方式(最好在 Python 中)来检测文件中占主导地位的换行符类型?

我有这个代码(基于来自/sf/answers/739358091/ 的想法):

import sys
if not sys.argv[1:]:
  sys.exit('usage: %s <filename>' % sys.argv[0])

with open(sys.argv[1],"rb") as f:
  d = f.read()
  crlf, lfcr = d.count('\r\n'), d.count('\n\r')
  cr, lf = d.count('\r'), d.count('\n')
  print('crlf: %s' % crlf)
  print('lfcr: %s' % lfcr)
  print('cr: %s' % cr)
  print('lf: %s' % lf)
  print('\ncr-crlf-lfcr: %s' % (cr - crlf - lfcr))
  print('lf-crlf-lfcr: %s' % (lf - crlf - lfcr))
  print('\ntotal (lf+cr-2*crlf-2*lfcr): %s\n' % (lf + …
Run Code Online (Sandbox Code Playgroud)

python newline

4
推荐指数
1
解决办法
1519
查看次数

是否有一个内置的python模拟unix'wc'用于嗅探文件?

每个人都这样做 - 从shell开始,你需要一些关于文本文件的细节(不仅仅是ls -l给你),特别是那个文件的行数,所以:

@ > wc -l iris.txt
 149 iris.txt
Run Code Online (Sandbox Code Playgroud)

我知道我可以从python访问shell实用程序,但我正在寻找一个内置的python,如果有的话.

我的问题的关键是在不打开文件的情况下获取此信息(因此我引用了unix实用程序*wc - *l)

(正在'嗅探'这个正确的术语 - 也就是说,在没有打开它的情况下偷看文件?')

python unix io

2
推荐指数
1
解决办法
1601
查看次数

标签 统计

python ×3

io ×1

line-count ×1

newline ×1

text-files ×1

unix ×1