👩💻
言語処理100本ノック 2020 (Rev 2) 第2章: UNIXコマンド 14. 先頭からN行を出力
問題
14. 先頭からN行を出力
自然数Nをコマンドライン引数などの手段で受け取り,入力のうち先頭のN行だけを表示せよ.確認にはheadコマンドを用いよ.
solution14.py
import sys
import pandas as pd
#import fire
if len(sys.argv) == 1:
print('Set arg n, like "python chapter02/solution14.py 5"')
else:
n = int(sys.argv[1])
df = pd.read_csv('chapter02/popular-names.txt', sep='\t', header=None)
print(df.head(n))
output
0 1 2 3
0 Mary F 7065 1880
1 Anna F 2604 1880
2 Emma F 2003 1880
3 Elizabeth F 1939 1880
4 Minnie F 1746 1880
solution14.sh
head -n $1 popular-names.txt
output
Mary F 7065 1880
Anna F 2604 1880
Emma F 2003 1880
Elizabeth F 1939 1880
Minnie F 1746 1880
この問題では、sys
モジュールのargv
を使用します。そうすると、コマンドライン引数のリストが取得できる。例えば、「python solution14.py 5」を実行した場合は、「sys.argv」は「[solution14.py, 5]」となります。そのため、sys.argv[1]がコマンドライン引数(5)となります。
参考記事
第2章: UNIXコマンド
Pythonでコマンドライン引数を受け取る
pandas.DataFrame, Seriesの先頭・末尾の行を返すheadとtail
Discussion