2014-03-07 14 views
1

我想在ubuntu上使用python檢索文件的行數。檢索Python的行數

我試過如下:

os.system("wc -l fileName") 

但它返回像

numberOfLines fileName 
0 

當我試圖檢索結果: L =使用os.system( 「WC -l文件名」)

l = 0

我也嘗試過爲了保留第一個元素而分開結果,但是這提高了AttributeError: 'int' object has no attribute 'split'

如何獲得我正在查找的行數?

+0

可能重複[如何獲得線在Python便宜算什麼?](http://stackoverflow.com/questions/845058/how-to- get-line-count-cheaply-in-python) – pseudocubic

+0

http://docs.python.org/2/library/os.html#os.system – dm03514

回答

3

os.system將返回wc -l命令的退出值,如果沒有錯誤發生,則該值爲零。

你想要的程序的實際輸出:

#TODO: handle CalledProcessError, malformatted output where appropriate 

wc_output = subprocess.check_output(["wc", "-l", fileName]) 
num_lines = int(wc_output.split()[0]) 
+2

值得一提的是'wc'打印文件名如果它是一個參數,但如果從stdin計數行,則不會。 – kojiro

+0

@kojiro高興? :) –

+0

@ w.m同樣,我試過subprocess.check_output([「ls」,「files *」]),但得到一個錯誤,告訴文件文件*不存在。我如何指定我想要所有名稱以文件開頭的文件? – bigTree