計算一個文件的行數時出現不同的結果我聽說wc -l
可以計算文件中的行數。但是,當我使用它來計算由Python生成的文件的行數時,它會給出不同的結果,計算一行。當使用wc -l和cat -n
這裏是MWE。
#!/usr/bin/env python
import random
def getRandomLines(in_str, num):
res = list()
lstr = len(in_str)
for i in range(num):
res.append(''.join(random.sample(in_str, lstr)))
return res
def writeRandomLines(rd_lines, fname):
lines = '\n'.join(rd_liens)
with open(fname, 'w') as fout:
fout.write(lines)
if __name__ == '__main__':
writeRandomLines(getRandomLines("foobarbazqux", 20), "example.txt")
這給出了一個文件,example.txt
,包含20行隨機字符串。因此,example.txt
中行數的預期爲20
。但是,如果將wc -l
應用於此,則結果爲19
。
$ wc -l example.txt
19 example.txt
當人們使用cat -n
顯示文件的內容,行號,可以看到
$ cat -n example.txt
1 oaxruzaqobfb
2 ozbarboaufqx
3 fbzarbuoxoaq
4 obqfarbozaxu
5 xoqbrauboazf
6 ufqooxrababz
7 rqoxafuzboab
8 bfuaqoxaorbz
9 baxroazfouqb
10 rqzafoobxaub
11 xqaoabbufzor
12 aobxbaoruzfq
13 buozaqbrafxo
14 aobzoubfarxq
15 aquofrboazbx
16 uaoqrfobbaxz
17 bxqubarfoazo
18 aaxruzofbboq
19 xuaoarzoqfbb
20 bqouzxraobfa
爲什麼wc -l
計數錯誤一條線,我能做什麼來解決這個問題?
任何線索或提示將不勝感激。
是否有一個換行符在文件的結尾?有些時候我不得不翻譯各種換行版本來獲得準確的結果。 – Phix