파이썬 인터프리터를 제어할 수 있는 방법을 제공
파이썬 인터프리터를 띄워주세요. 인터프리터가 우리의 명령을 기다린다는 뜻으로 >>>를 표시하고 있죠? 도스와 마찬가지로 이것도 프롬프트라고 합니다.
sys 모듈을 사용하면 이 프롬프트를 바꿀 수가 있지요.
>>> import sys
>>> sys.ps1 # 현재의 프롬프트는?
'>>> '
> >>> sys.ps1 = '^^; ' # 요걸로 바꿔!
^^; print('hello')
hello
^^; 5 * 3
15
^^;
argv를 출력하면 입력된 arguments를 list 형태로 저장하고 있다. 주의할 점은 항상 첫번째 argument는 실행하는 파일이다. 즉 내가 원하는 입력 argument는 그다음인 argv[1]부터 시작한다
import sys
if __name__ == '__main__':
print(sys.path)
sys.path.append("dir") 을 통해 원하는 디렉터리를 실행 path에 추가할 수 있다.
import sys
if name == 'main':
sys.path.append("/my_dir/files")
print(sys.path)
read()
f = open('test.txt', 'r', encoding='utf-8')
data = f.read()
print(data)
f.close()
# === 실행 결과 ===
# 안녕하세요.
# 오늘은 파이썬 공부를 합니다.
# 열공합시다!
readline()
f = open('test.txt', 'r', encoding='utf-8')
data = f.readline()
print(data)
f.close()
# === 실행 결과 ===
# 안녕하세요.
readlines()
f = open('test.txt', 'r', encoding='utf-8')
data = f.readlines()
print(data)
f.close()
# === 실행 결과 ===
# ['안녕하세요\n', '오늘은 파이썬 공부를 합니다.\n', '열공합시다!\n']
open('test.txt', 'r', encoding='utf-8')의 의미:
test.txt 파일을 r(읽기) 모드로 불러오되, 인코딩은 utf-8 방식으로 불러들인다.
open() 메소드의 파일 열기 모드:
r - read, 읽기 모드
w - write, 쓰기 모드(모든 내용을 삭제하고 새로 씀. 덮어쓰기에 해당.)
a - append, 추가 모드(기존 내용에 덧붙임. 이어쓰기에 해당.)
불러온 파일을 담은 변수 f를 활용해 파일의 내용을 가져올 수 있다.
read() - 전체 내용 그대로 읽어오기
readline() - 한 줄 내용을 읽어오되, 개행문자도 함께 읽어온다.
예시의 경우, print()의 개행과 중복되어 개행이 두 번 이루어졌다.
readlines() - 파일의 내용이 한 줄씩 요소로 들어있는 리스트를 반환한다.
open()으로 가져온 파일은 반드시 close() 해주는 편이 좋다.
# read()는 그 자체로 전체를 읽어오는 메소드이므로 생략함
# readline() 활용
f = open('test.txt', 'r', encoding='utf-8')
while True:
data = f.readline()
if data=="": break
else: print(data, end="") # print()의 자동 줄 바꿈 방지
f.close()
# readlines() 활용
f = open('test.txt', 'r', encoding='utf-8')
data = f.readlines()
for row in data:
print(row, end="") # print()의 자동 줄 바꿈 방지
f.close()
import csv
f = open('seoul.csv', 'r', encoding='cp949')
# seoul.csv 파일을 r(읽기) 모드로 불러오되,
# 인코딩은 cp949(Windows 한글 인코딩 default 방식) 방식으로 불러들인다.
data = csv.reader(f, delimiter=',')
# csv 파일을 담고 있는 변수 f를 reader()함수에 넣어 data라는 csv reader 객체 생성
# csv 파일의 데이터를 기호 ,를 기준으로 분리하여 읽어온다.
for row in data:
print(row)
f.close()
delimiter=','를 지정해주지 않아도 reader()의 default delimiter가 기호 , 로 지정되어 있으므로 위 실행 결과와 동일한 결과를 얻을 수 있다.
만약, 원본 파일의 delimiter 설정값과 다른 기호를 delimiter로 지정한다면 아래와 같은 결과가 나온다.
['날짜,지점,평균기온(℃),최저기온(℃),최고기온(℃)'] (이하 생략)