👩‍💻

言語処理100本ノック 2020 (Rev 2) 第2章: UNIXコマンド 14. 先頭からN行を出力

2023/01/07に公開約1,200字

問題

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)となります。

https://github.com/kurokawa5/nlp100_2020/blob/main/chapter02/solution14.py

参考記事

第2章: UNIXコマンド
Pythonでコマンドライン引数を受け取る
pandas.DataFrame, Seriesの先頭・末尾の行を返すheadとtail

Discussion

ログインするとコメントできます