关于linux:使用python和wc -l计算文件中的行数

Count the number of lines in a file using python and wc -l

本问题已经有最佳答案,请猛点这里访问。

我在Linux上有这个命令,在Windows上转换成type时遇到问题:

1
row = run('cat '+'C:/Users/Kyle/Documents/final/VocabCorpus.txt'+" | wc -l").split()[0]

对于语句"wc-l"是用于行计数,以查看有多少行存在。如果我使用"type"命令将其更改为以下内容,应该是什么?

我试过了,但没用。

1
 row = run('type '+'C:/Users/Kyle/Documents/final/VocabCorpus.txt'+" | wc -l").split()[0]

运行命令如下:

1
2
3
def run(command):
    output = subprocess.check_output(command, shell=True)
    return output

请帮帮我。谢谢您。


你在计算文件中的行数?为什么你不能用纯Python做呢?

像这样?

1
2
with open('C:/Users/Kyle/Documents/final/VocabCorpus.txt') as f:
    row = len(f.readlines())


实际上,wc在您的文件中计算
符号(证据)。如果你有大文件,想要保存一些内存,你最好把它分块读取,以便有O(1)内存消耗:

1
2
3
4
5
6
7
8
9
10
11
12
CHUNK_SIZE = 4096

def wc_l(filepath):
    nlines = 0
    with open(filepath, 'rb') as f:
        while True:
            chunk = f.read(CHUNK_SIZE)
            if not chunk:
                break
            nlines += sum(1 for char in chunks if char == '
'
)
    return nlines