Pythn file input 및 argparse 병존
while(<>){
print $_;
}
어떤 편리한 말을 하려면 다음과 같은 두 가지 입력 방식을 받아들일 수 있다.#!/usr/bin/env python
import fileinput
for line in fileinput.input():
print(line, end="")
여기서, 우리는 fileinput과argparse를 간단하게 조합할 것이다.#!/usr/bin/env python
import argparse
import fileinput
parser = argparse.ArgumentParser(prog="cata.py", description="fileinput & argparse")
parser.add_argument('-i', '--info', action='store_true', help='Print information')
args = parser.parse_args()
for line in fileinput.input():
print(line, end="")
그래서 이런 실수 (울)$ ./catf_ng.py file?.txt
usage: cata.py [-h] [-i]
cata.py: error: unrecognized arguments: file0.txt file1.txt file2.txt
해결 방법은 다음 웹 사이트에 있음https://gist.github.com/martinth/ed991fb8cdcac3dfadf7
상술한 사이트는 최종 기술 예가 없고 같은 내용이 일본어 사이트에서 성공하지 못했기 때문에 나는 이 문장에 필기를 남기고 싶다.
#!/usr/bin/env python
import argparse
import fileinput
parser = argparse.ArgumentParser(prog="cata.py", description="fileinput & argparse")
parser.add_argument('files', metavar='FILE', nargs='*', help='files to read, if empty, stdin is used')
parser.add_argument('-i', '--info', action='store_true', help='Print information')
args = parser.parse_args()
for line in fileinput.input(files=args.files):
print(line, end="")
마지막으로 경품으로 위의ddarguument()에 추가된 옵션("-i", "--info")에 기능이 추가되었습니다.#!/usr/bin/env python
import argparse
import fileinput
parser = argparse.ArgumentParser(prog="cati.py", description="cat with file infomation")
parser.add_argument('files', metavar='FILE', nargs='*', help='files to read, if empty, stdin is used')
parser.add_argument('-i', '--info', action='store_true', help='Print filename and line no')
args = parser.parse_args()
for line in fileinput.input(files=args.files):
if(args.info):
if(fileinput.isfirstline()):
print("*** {}".format(fileinput.filename()))
print("{:6}\t".format(fileinput.filelineno()), end="")
print(line, end="")
위의 스크립트는 옵션이 없으면 캣만 만듭니다.예를 들어, 다음 세 개의 파일을 준비합니다.
file0.txt
I am Nozomi.
Are you Nozomi.
Yes, I am.
file1.txtThis is my bag.
That is your pen.
Is that a pen?
Yes, it is.
No, it is not.
It is a pencil.
file2.txtHe is my friend.
She is not from America.
Do you study English?
I like soccer.
"- info"또는 "- i"를 더하면 출력은 다음과 같습니다.$ ./cati.py --info file?.txt
*** file0.txt
1 I am Nozomi.
2 Are you Nozomi.
3 Yes, I am.
4
*** file1.txt
1 This is my bag.
2 That is your pen.
3 Is that a pen?
4 Yes, it is.
5 No, it is not.
6 It is a pencil.
7
*** file2.txt
1 He is my friend.
2 She is not from America.
3 Do you study English?
4 I like soccer.
5
Reference
이 문제에 관하여(Pythn file input 및 argparse 병존), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/wyamamo/items/38789488bc008e9223e6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)