- 파일쓰고 읽기
f = file('f.txt', w)
f.write(s)
f.close()
2번째 인자를 생략하면 기본으로 r이된다.
- 라인단위로 파일쓰기
파일객체의 반복자 이용
f = open ('t.txt')
for line in f:
print line
readline : 한번에 한줄씩
f = open ('t.txt')
line = f.readline()
while line:
line = f.readline()
readlines : 파일전체를 라인단위로 끊어서 리스트에 저장
f = open ('t.txt')
for line in f.readlines():
print line
xreadlines : 필요할때만 읽어서 공급
f = open ('t.txt')
for line in f.xreadlines():
print line
- 라인단위로 파일쓰기
f.writelines(lines)
리스트 안에 있는 문자열을 연속해서 출력한다.
- 자동으로 줄바꿈 하지 않기위해서 writelines함수를 사용한다.
- 파일에서 원하는 만큼의 문자 읽기
read 메쏘드에 인수로 원하는 바이트를 써준다
f = open ('t.txt')
f.read(10)
- 임의 접근 파일
seek(n) : 파일의 n번째로 이동
seek(n, 1) : 현재 위치에서 n바이트 이동
seek(n, 2) : 맨마지막 위치에서 n바이트 이동
tell() : 현재 위치 알려줌
레퍼런스복사 : 객체는 그대로 두고 객체를 참조하는 주소만 복사
실제객체 복사 : 실제 객체를 복사한다
- copy모듈을 이용한 객체 복사
shallow copy : 복합객체를 별도로 생성하되 내용은 원래의 레퍼런스로 채운다
deep copy : 복합객체를 생성하고 내용을 재귀적으로 복사한다.
import copy
a = [1,2,3]
b = [4,5]
x = [a,b,100]
y = copy.copy(x)
얕은 카피는 a, b는 레퍼런스를 복사한다.
깊은 카피는 a, b도 객체복사를 한다.
y = copy.deepcopy(x)
- 형변환
정수형 변환 : int()
반올림하여 정수로 : round()
버리기 : floor() # import math
올리기 : ceil() # import math
실수형 : float()
롱형 : long()
복소수 : complex (1,3)
리스트로 : list()
튜플로 : tuple()
- 객체를 문자열로 변환
str() : 문자열로 변환, repr보다 보기 좋게 변환해준다
repr() : 문자열로 변환
어떤 객체를 문자열로 변환한후 나중에 문자열을 다시 객체로 변환
a = {1: "one", 2:"two"}
b = repr (a)
c = eval (b)
print c -> {2:'two', 1:'one'}
- 문자열 요소를 가지는 튜플, 리스트를 문자열로 변환
s = 'python is'
l = s.split()
' '.join(l)
- 사전에서 리스트로 변환
d.keys(), d.values(), d.items()
- 리스트에서 사전으로 변환
keys, values
L=zip (keys, values)
- 문자변환
chr(97) -> 'a'
ord('a') -> 97
- 임이의 진수를 10진수로
int ('64', 10) -> 100
int ('144', 8) -> 100
- 10진수에서 8, 16진수로
hex(100) -> 10진수 100을 16진수 문자열로 '0x64'
oct(100) -> 10진수 100을 8진수 문자열로 '0144'
순서가 없기때문에 슬라이싱, sort등을 사용할 수 없다
예) set() # 빈 set객체생성
set([1,2,3,4,5,5]) # set([1,2,3,4,5]) 가 된다. 중복된것은 제거된다
set('abbc') # set(['a','b','c']) 가 된다.
s.issubset(t) # s가 t의 부분집합인가
s.isuperset(t) # s가 t의 포함집합인가
s.intersection(t) # s와 t의 교집합
s.difference(t) # s와 t의 차집합 s-t
s.symmetric_difference(t) # s와 t의 배타집합 s ^ t
list(s)
tuple(s)
s.update(t) # s에 t를 업데이트한다