计算行的文件数量-l
问题描述:
我在Linux上,此命令,我有问题转换成type
在Windows上:计算行的文件数量-l
row = run('cat '+'C:/Users/Kyle/Documents/final/VocabCorpus.txt'+" | wc -l").split()[0]
对于声明“WC - L”是行数以查看存在多少行。如果我使用“type”命令将其更改为以下内容,它应该是什么?
我试过这个,它不工作。
row = run('type '+'C:/Users/Kyle/Documents/final/VocabCorpus.txt'+" | wc -l").split()[0]
运行命令如下:
def run(command):
output = subprocess.check_output(command, shell=True)
return output
请帮助我。谢谢。
答
您正在尝试计算文件中的行数?为什么你不能在纯Python中做到这一点?
这样的事情?
with open('C:/Users/Kyle/Documents/final/VocabCorpus.txt') as f:
row = len(f.readlines())
+2
稍微好一点的版本是'sum(1代表f中的行)',它消耗更少的内存:''f.readlines()''读取整个文件, 'f''一次只能产生一行。 – y0prst
答
其实wc
计数文件(proof)\n
符号。如果你有大文件并想节省一些内存,你最好通过大块读取O(1)内存消耗:
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 == '\n')
return nlines
什么是运行方法?而'wc'不是本机窗口的二进制 –
此语句用于查找词汇表文件中的行数并将其打印出来。是的,我想知道是否有这个声明的等价物,因为这是在linux中运行的。谢谢 – windboy
如果它在linux中运行,为什么要给它一个Windows文件系统路径? –