본문 바로가기
프로그램

[파이썬] 문제 : 실행 인수를 받아 파일의 단어 추출

by 오디세이99 2022. 11. 22.
728x90
반응형

문제

파일의 지정된 열에서 문자열을 추출해야 합니다.
프로그램은 열의 번호와 파일 경로를 커맨드 라인 argument로 받게 됩니다.
마지막으로, 열에는 1부터 시작하는 번호가 매겨집니다. 파일의 열이 공백(" ")으로 구분되어 있다고 가정할 수 있습니다.

 

import sys

def fileView(file, w_idx):
    print(file, w_idx)
    f = open(file, 'r')
    while True:
        line = f.readline()
        if not line: break
        lst = line.split()  # 단어 공백으로 분리
        if w_idx > 0 and w_idx < len(lst):
            print(lst[w_idx])
        else:
            print(line)
    f.close()

arg_cnt = len(sys.argv)   # 1:python , 2:text명  / 1:python , 2:단어번호, 3:text명

# print('arg = ',arg_cnt)
# for i in range(arg_cnt):
#     print('arg[',i,']',sys.argv[i])

if arg_cnt <= 1:    # python cat.py
    print('text 파일을 입려하세요')
    exit(0)         # 종료
elif arg_cnt == 2:    # python cat.py 1
    if sys.argv[1].isdigit():    # 숫자인지 확인
        print('Text파일을 입력하세요.')
    else:
        fileView(sys.argv[1], 0)
elif arg_cnt == 3:    # python cat.py 3 sample.txt
    if sys.argv[1].isdigit():    # 숫자인지 확인
        if int(sys.argv[1]) == 0:
            print('0 이상의 수를 입력하세요')
            exit(0)
        print('Text파일을 입력하세요.')
        fileView(sys.argv[2], int(sys.argv[1])-1)
728x90
반응형

댓글