Python

구멍 숭숭난 기초 지식채우기 II

해파리냉채무침 2024. 4. 1. 19:05

출처: Do it 점프투 파이썬

 

dir은 객체가 자체적으로 가지고 있는 변수나 함수를 보여줌. 

print(dir([1, 2, 3]))
print(dir({'1', 'a'}))

divmod는 7나누기 3은 몫은 2, 나머지는 1

몫과 나머지를 튜플 형태로 돌려주는 함수다. 

print(divmod(7, 3)) # (2, 1)
print(divmod(1.3, 0.2)) # (6.0, 0.09999...)

 

eval은 실행 가능한 문자열(1+2,'hi'+'a' 같은 것)을 입력으로 받아 문자열을 실행한 결과값을 돌려주는 함수이다.

print(eval('1+2')) # 3
print(eval("'hi' + 'a'")) # 'hia'
print(eval('divmod(4, 3)')) # (1, 1)

 

isinstance

isinstance 함수는 a가 Person클래스의 인스턴스 인지 확인한다. b는 Person 클래스의 인스턴스가 아니기 때문에 False를 반환한다. 

class Person :
    pass

a = Person()
print(isinstance(a, Person)) # True
b = 3
print(isinstance(b, Person)) # False

 

간단한 메모장 만들기

memo.py는 작성할 파이썬 프로그램 이름이다. -a는 프로그램의 실행 옵션이고, "Life is too short"는  추가할 메모 내용이다

python memo.py -a "Life is too short"

다음과 같이 입력으로 받은 옵션과 메모를 출력한다.

import sys

option = sys.argv[1]
memo = sys.argv[2]

print(option)
print(memo)

-a

Life is too short

 

sys.argv는 프로그램을 실행할 때 입력된 값을 읽어 들일 수 있다. sys.argv[0]은 입력받은 값 중에서 파이썬 프로그램 이름인 memo.py이므로 필요없는 값이다. sys.argv[1]은 프로그램 실행 옵션 값 (-a), sys.argv[2]은 메모내용(Life is too short) 이다. 

import sys

option = sys.argv[1]

if option == '-a' :
    memo = sys.argv[2]
    f = open('memo.txt', 'a')
    f.write(memo)
    f.write('\n')
    f.close()

옵션이 -a인 경우에 memo 값을 읽어서 memo.txt 파일에 값을 쓰도록 한다. 

메모는 한줄씩 추가해야하기 때문에 'a'(add)를 쓰고 메모를 추가할 때마다 다음줄에 저장되도록 (\n)을 썼다

C:\doit>python memo.py -a "Life is too short"
C:\doit>python memo.py -a "You need python"

작성할 메모를 출력하는 부분이다. 

python memo.py-v
import sys

option = sys.argv[1]

if option == '-a' :
    memo = sys.argv[2]
    f = open('memo.txt', 'a')
    f.write(memo)
    f.write('\n')
    f.close()
elif option == '-v' :
    f = open('memo.txt')
    memo = f.read()
    f.close()
    print(memo)

옵션으로 -v가 들어온 경우 memo.txt 파일을 읽어서 출력한다. 

C:\doit>python memo.py-v
Life is too short
You need python

입력된 메모가 그대로 출력된다. 

 

탭을 4개의 공백으로 바꾸기

python tabto4.py a.txt b.txt

a.txt 파일에 있는 탭을 4개의 공백으로 바꾸어 b.txt 파일에 저장한다.

import sys

src = sys.argv[1]
dst = sys.argv[2]

a.txt

b.txt

 

a.txt 파일을 다음과 같이 작성한다.

(\t) 문자로 분리되도록 입력한다.

Life   is    too    short

You  need  python

import sys

src = sys.argv[1]
dst = sys.argv[2]

f = open(src)
tab_content = f.read()
f.close()

space_content = tab_content.replace('\t', " " * 4)

f = open(dst, 'w')
f.write(space_content)
f.close()

src에 해당되는 입력 파일을 읽어서 내용을 tab_content라는 변수에 저장한후 replace 함수를 사용하여 탭(\t)을 4개의 공백으로 변경한다. 탭이 공백으로 변경된 space_content를 출력 파일인 dst에 쓰도록 한다. 

python tabto4.py a.txt b.txt를 한번 더 수행하여 b.txt에 저장한다.