반응형

(PYTHON)파이썬 파일 읽기 쓰기

 

파일 생성하고 내용 쓰기 (인코딩 ANSI)

>>>#D:temp 폴더에 "안녕.txt"생성하고 "w"쓰기모드로 "파일쓰기" 변수에 입력 . temp폴더가 없으면 에러
>>> 파일쓰기 = open("D:/temp/안녕.txt", "w")
>>> 파일쓰기.write("안녕 세상아 \n")	#"파일쓰기"변수에 글쓰기.
8
>>> 파일쓰기.write("괴롭다 세상아 \n")	#"파일쓰기"변수에 글쓰기.
9
>>> 파일쓰기.close()	#"파일쓰기"변수 사용완료. 이때 "안녕.txt."에 내용입력 됨..

파일 생성하고 내용 쓰기

 

파일 열기 모드

모드 의미
W 쓰기(write)
R 읽기(read)
A 추가하기(append)

 

 

파일에 내용 추가하기 예제

>>>#추가하기 모드로 "안녕.txt"파일을 열어 "파일추가" 변수에 입력
>>> 파일추가 = open("D:/temp/안녕.txt", "a")
>>> 파일추가.write("그래도 힘내자 세상아 \n")	#내용 추가하기
13
>>> 파일추가.close()	#"파일쓰기"변수 사용 완료

파일에 내용 추가

 

파일의 내용 읽기 (인코딩 ANSI)

>>>>>>#읽기 모드로 "안녕.txt"파일을 열어 "파일읽기" 변수에 입력
>>> 파일읽기 = open("D:/temp/안녕.txt", "r")
>>> for 임의변수 in 파일읽기.readlines() :
	print(임의변수, end="")	#end=""를 안넣으면 print함수가 기본적으로 한줄을 넘겨 빈줄이 들어감

안녕 세상아 
괴롭다 세상아 
그래도 힘내자 세상아 

>>> for 임의변수 in 파일읽기.readlines() :	 # 다시 파일읽기를 하기
	print(임의변수, end="")

	# 아무것도 출력이 되지 않는다. 커서위치가 파일 가장 끝에 있어 더 읽을 내용이 없음
    
>>> 파일읽기.seek(0)	# 커서위치를 제일 앞으로 이동
0
>>> for 임의변수 in 파일읽기.readlines() :	# 다시 파일읽기 하기
	print(임의변수, end="")

	
안녕 세상아
괴롭다 세상아
그래도 힘내자 세상아 	# 내용이 정상 출력된다.
    
>>> 파일읽기.close()	# 파일을 읽은 후 닫아야 한다. 안그러면 파일이 열려있다고 삭제가 안된다.

 

 

한글 파일 오류 해결하기 (인코딩 UTF-8)

D:\temp\utf8.txt 파일에 아래와 같은 내용을 입력하고 UTF-8로 인코딩 저장하였습니다.

>>> utf8읽기 = open("D:/temp/utf8.txt", "r")	# 변수 utf8읽기에 파일을 읽기모드로 열어서 담기
>>> utf8읽기.read()	# utf8 변수를 read로 읽기
Traceback (most recent call last):	# 코덱 에러가 뜸
  File "<pyshell#28>", line 1, in <module>
    utf8읽기.read()
UnicodeDecodeError: 'cp949' codec cant decode byte 0xeb in position 0: illegal multibyte sequence
>>>
>>> utf8읽기.close()	# utf8읽기 변수 close 해주고 끝내기
>>> import codecs	# codecs를 임포트함
>>> utf8읽기 = codecs.open("D:/temp/utf8.txt", "r", "utf-8")	# codecs.open으로 열고 마지막에 utf-8 코덱임을 적음
>>> utf8읽기.read()
'나는 인코딩 utf-8이다.\r\n나는 코덱없이 파이썬에서 읽으면 에러난다.'	# 정상출력
>>> utf8읽기.close()	

 

(PYTHON)파이썬 전체보기

 

 

'(PYTHON)파이썬' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

 

반응형

'(PYTHON)파이썬' 카테고리의 다른 글

(PYTHON)파이썬 예외 처리  (0) 2020.08.11
(PYTHON)파이썬 딕셔너리 Dictionary  (0) 2020.08.09
(PYTHON)파이썬 튜플 tuple  (0) 2020.08.09
반응형

(PYTHON)파이썬 딕셔너리 Dictionary

 

딕셔너리 입력, 키, 값, 항목 검색

>>> 딕셔너리 = {"1번":"파이썬","2번":"C","3번":"JAVA"}	#딕셔너리 입력
>>> print(딕셔너리)
{'1번': '파이썬', '2번': 'C', '3번': 'JAVA'}
>>>
>>> 딕셔너리.keys()		#딕셔너리 keys
dict_keys(['1번', '2번', '3번'])
>>> 딕셔너리.values()	#딕셔너리 values
dict_values(['파이썬', 'C', 'JAVA'])
>>> 
>>> keys리스트 = list(딕셔너리.keys())	#keys리스트 변수에 리스트로(딕셔너리 keys) 변환 입력
>>> print(keys리스트)
['1번', '2번', '3번']
>>> 
>>> 딕셔너리["1번"]	#딕셔너리 변수 key로 value 검색
'파이썬'
>>> 딕셔너리["2번"]	#딕셔너리 변수 key로 value 검색
'C'
>>> 
>>> 딕셔너리.get("3번")
'JAVA'

 

 

딕셔너리 함수

함수 함수 기능
keys 딕셔너리의 key 값들을 리스트로 리턴한다.
values 딕셔너리의 value 값들을 리스트로 리턴한다.
items 딕셔너리의 key와 value의 쌍으로 된 항목(아이템)들의 리스트를 리턴한다.

 

 

딕셔너리 항목 추가하기, 삭제하기

>>> 딕셔너리 = {}	#딕셔너리 생성
>>> 딕셔너리["1번"] = "PYTHON"	#항목추가 key값 "1번"에 "PYTHON"을 value로
>>> 딕셔너리["2번"] = "C"	#항목추가 key값 "2번"에 "c"를 value로
>>> print(딕셔너리)
{'1번': 'PYTHON', '2번': 'C'}
>>> 
>>> del 딕셔너리["1번"]	#항목삭제 key값 "1번"을
>>> print(딕셔너리)
{'2번': 'C'}
>>> 
>>> 딕셔너리.clear()	#딕셔너리 전체항목 삭제
>>> print(딕셔너리)
{}

 

 

(PYTHON)파이썬 전체보기

 

'(PYTHON)파이썬' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

 

반응형

'(PYTHON)파이썬' 카테고리의 다른 글

(PYTHON)파이썬 파일 읽기 쓰기  (0) 2020.08.11
(PYTHON)파이썬 튜플 tuple  (0) 2020.08.09
(PYTHON)파이썬 리스트 LIST  (0) 2020.08.09
반응형

(PYTHON)파이썬 튜플 tuple

 

튜플 생성 방법

>>> 튜플 = (10, 20, 30)
>>> print(튜플)
(10, 20, 30)

 

 

튜플 리스트와의 차이점

>>> #튜플은 항목의 추가, 삭제 등의 기능이 제한됨
>>> 튜플 = (10, 20, 30, 40)
>>> 튜플.append(50)	#튜플은 추가 안됨
Traceback (most recent call last):
  File "<pyshell#174>", line 1, in <module>
    튜플.append(50)
AttributeError: 'tuple' object has no attribute 'append'
>>> 튜플.insert(2, 50)	#튜플은 추가 안됨
Traceback (most recent call last):
  File "<pyshell#175>", line 1, in <module>
    튜플.insert(2, 50)
AttributeError: 'tuple' object has no attribute 'insert'
>>> 튜플.remove(20)	#튜플은 삭제 안됨
Traceback (most recent call last):
  File "<pyshell#176>", line 1, in <module>
    튜플.remove(20)
AttributeError: 'tuple' object has no attribute 'remove'
>>> del 튜플[0]	#튜플은 삭제 안됨
Traceback (most recent call last):
  File "<pyshell#177>", line 1, in <module>
    del 튜플[0]
TypeError: 'tuple' object doesn't support item deletion

 

 

튜플 값 변경 방법

>>> 튜플 = (10, 20, 30, 40)	#튜플 생성
>>> 리스트 = list(튜플)	#튜플을 리스트로 변경해서 리스트변수에 입력
>>> 리스트.append(60)	#리스트에 60 추가
>>> 리스트.remove(20)	#리스트에 20 제거
>>> 새튜플 = tuple(리스트)	#리스트를 튜플로 변경해서 새튜플변수에 입력
>>> 
>>> print(튜플)
(10, 20, 30, 40)
>>> print(새튜플)
(10, 30, 40, 60)

 

 

(PYTHON)파이썬 전체보기

 

 

'(PYTHON)파이썬' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

 

반응형

'(PYTHON)파이썬' 카테고리의 다른 글

(PYTHON)파이썬 딕셔너리 Dictionary  (0) 2020.08.09
(PYTHON)파이썬 리스트 LIST  (0) 2020.08.09
(PYTHON)파이썬 문자열 활용하기  (0) 2020.08.07
반응형

 

(PYTHON)파이썬 리스트 LIST

 

리스트 만들기

>>> #비어있는 리스트 만들기 방법1
>>> 리스트1 = []
>>> print(리스트1)
[]
>>> 
>>> #비어있는 리스트 만들기 방법2
>>> 리스트2 = list()
>>> print(리스트2)
[]


>>>#여러 값들이 들어 있는 리스트 만들기 방법1
>>> 리스트1 = [10, 20, 30]
>>> print(리스트1)
[10, 20, 30]
>>> 
>>>#여러 값들이 들어 있는 리스트 만들기 방법2
>>> 리스트2 = list([100, 200, 300])
>>> print(리스트2)
[100, 200, 300]


>>>#매트릭스 리스트 만들기 및 사용하기
>>> 매트릭스 = [[1,2,3],[4,5,6,7],[8.9]]
>>> print(매트릭스)
[[1, 2, 3], [4, 5, 6, 7], [8.9]]
>>> print(매트릭스[0])
[1, 2, 3]
>>> print(매트릭스[1][1])
5
>>> print(매트릭스[2][0])
8.9
>>> 

 

 

range 함수

함수 사용 생성되는 수열 비고
range(1, 10, 1) [1, 2, 3, 4, 5, 6, 7, 8, 9] 1부터 저장하며 1씩 증가하다 10이되면 저장하지 않고 빠저나감
range(10, 51, 10) [10, 20, 30, 40, 50] 10부터 저장하며 10씩 증가하다 51과 같거나 큰수가 되면 저장하지 않고 빠져나감
range(1,10) [1, 2, 3, 4, 5, 6, 7, 8, 9] 1부터 저장하며 기본값인 1씩 증가하다 10이되면 저장하지 않고 빠저나감
range(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 기본값인 0부터 저장하며 기본값인 1씩 증가하다 10이되면 저장하지 않고 빠저나감
>>> a = list(range(1,10,1))
>>> b = list(range(10,51,10))
>>> c = list(range(1,10))
>>> d = list(range(10))
>>> 
>>> print(a)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> print(b)
[10, 20, 30, 40, 50]
>>> print(c)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> print(d)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

 

 

리스트 인덱스 사용하기

>>> 리스트인덱스사용 = [100, 200, 300]
>>> 리스트인덱스사용[0] = 10
>>> 리스트인덱스사용[1] = 30
>>> 리스트인덱스사용[2] = 리스트인덱스사용[0] + 리스트인덱스사용[1]
>>> 
>>> print(리스트인덱스사용)
[10, 30, 40]

 

 

리스트 값 추가하기

>>> 값뒤추가 = [10, 20 ,30]
>>> 값뒤추가.append(40)
>>> 값뒤추가.append(500)
>>> print(값뒤추가)
[10, 20, 30, 40, 500]


>>> 중간추가 = [10, 20, 30]
>>> 중간추가.insert(0,0)
>>> 중간추가.insert(2,50)
>>> 
>>> print(중간추가)
[0, 10, 50, 20, 30]

 

 

두 개의 리스트 연결하기

>>> a = [1, 2, 3]
>>> b = [10.1, 20,2, 30.3]
>>>
>>> a.extend(b)
>>>
>>> print(a)
[1, 2, 3, 10.1, 20, 2, 30.3]
>>> print(b)
[10.1, 20, 2, 30.3]


>>> c = [4, 5, 6]
>>> d = [40.4, 50.5, 60.6]
>>> 
>>> c = c + d
>>> 
>>> print(c)
[4, 5, 6, 40.4, 50.5, 60.6]
>>> print(d)
[40.4, 50.5, 60.6]

 

 

 

 리스트 활용 함수들

함수명 기능 명령 예(a = [1, 2, 3]
append 리스트의 맨 뒤에 새로운 항목을 추가한다. a.append(10)
insert 리스트의 특정 위치(인덱스)에 항목을 삽입한다. a.insert(2,10)
extend 원래의 리스트에 다른 리스트를 연결한다. a.extend([4,5,6])
count 리스트에 포함된 특정 값의 항목의 개수를 리턴한다. a.count(2)
remove 리스트에서 입력된 값과 같은 항목들을 모두 지운다. a.remove(2)
index 특정 값의 리스트에서의 위치, 즉 인덱스를 알려준다. a.index(3)
sort 리스트의 값들을 오름차순으로 정렬한다. a.sort()
reverse 리스트의 순서를 거꾸로 바꾼다. a.reverse()
pop 맨 뒤에 있는 항목을 리턴하고, 리스트에서 삭제한다. a.pop()
>>> #conut 함수
>>> a = [10, 20, 10, 20, 10]
>>> a.count(10)
3
>>> a.count(20)
2
>>> a.count(30)
0


>>> #remove 함수
>>> a = [10, 20, 30, 40, 50]
>>> print(a)
[10, 20, 30, 40, 50]
>>> a.remove(30)
>>> print(a)
[10, 20, 40, 50]


>>> #index 함수
>>> a = [10, 20, 30, 40, 50]
>>> a.index(10)
0
>>> a.index(20)
1
>>> a.index(40)
3


>>> #sort 함수
>>> a = [10, 20, 30, 40, 50]
>>> a.insert(2, 60)
>>> print(a)
[10, 20, 60, 30, 40, 50]
>>> a.sort()
>>> print(a)
[10, 20, 30, 40, 50, 60]


>>> #reverse 함수
>>> a = [10, 20, 30, 40, 50]
>>> a.reverse()
>>> print(a)
[50, 40, 30, 20, 10]


>>> #pop 함수
>>> a = [10, 20, 30, 40, 50]
>>> a.pop()
50
>>> a.pop()
40
>>> print(a)
[10, 20, 30]

 

 

(PYTHON)파이썬 전체보기

 

'(PYTHON)파이썬' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

 

반응형

'(PYTHON)파이썬' 카테고리의 다른 글

(PYTHON)파이썬 튜플 tuple  (0) 2020.08.09
(PYTHON)파이썬 문자열 활용하기  (0) 2020.08.07
(PYTHON)파이썬 math 라이브러리  (0) 2020.08.07
반응형

(PYTHON)파이썬 문자열 활용하기 

 

문자열의 기본

>>> 스트링1 = "안녕"
>>> 스트링2 = "파이썬"
>>> 
>>> 스트링1
'안녕'
>>> 스트링2
'파이썬'
>>> 


>>> long = """파이썬 안녕?
나는 reddb야
반갑다"""
>>> 
>>> long
'파이썬 안녕?\n나는 reddb야\n반갑다'
>>> 
>>> print(long)
파이썬 안녕?
나는 reddb야
반갑다
>>> 

 

 

문자열의 길이와 크기( len(), sys.getsizeof() )

>>> 문자열길이 = "안녕 파이썬 반가워"
>>> len(문자열길이)
10


>>> import sys
>>> 문자크기1 = "abc"
>>> 문자크기2 = "abcd"
>>> 문자크기3 = "abcd가"
>>> 
>>> sys.getsizeof(문자크기1)
28
>>> sys.getsizeof(문자크기2)
29
>>> sys.getsizeof(문자크기3)
48

 

 

대소문자 변환하기(lower, upper, capitalize)

>>> 문자열 = "Hi Hello Python"
>>> lower함수 = 문자열.lower()
>>> upper함수 = 문자열.upper()
>>> 
>>> lower함수
'hi hello python'
>>> upper함수
'HI HELLO PYTHON'


>>> 문자열2 = "hi hello PYTHON"
>>> 
>>> capitalize함수 = 문자열2.capitalize()
>>> print(capitalize함수)
Hi hello python

 

 

문자열 점검 함수

함수명 점검 내용 예시(결과값 Ture)
isdecimal 십진수(decimal), 즉 정수면 참 "1234".isdeciaml()
isalpha 영어, 한글로만 구성되었다면 참 "abc".isalpha
isalnum 문자와 숫자로만 구성되었다면 참 "abc1234".isalnum
isascii ASCII(아스키) 코드에 포함되는 문자들이면 참 "abc".isascii
isidentifier 식별자(변수이름)로 사용 가능하면 참 "abc".isidentifier
islower 모든 문자가 소문자로 구성되었다면 참 "hello".islower
isupper 모든 문자가 대문자로 구성되었다면 참 "HELLO".isupper

 

 

불필요한 공백제거(strip, lstrip, rstrip)

>>> 공백글자 = "   안녕 파이썬   "
>>> 양쪽공백제거 = 공백글자.strip()
>>> 왼쪽공백제거 = 공백글자.lstrip()
>>> 오른쪽공백제거 = 공백글자.rstrip()
>>> 
>>> 공백글자
'   안녕 파이썬   '
>>> 양쪽공백제거
'안녕 파이썬'
>>> 왼쪽공백제거
'안녕 파이썬   '
>>> 오른쪽공백제거
'   안녕 파이썬'

 

 

문자열 부분적으로 변경하기( replace() )

>>> 문자열 = "안녕 파이썬 반가워"
>>> 부분변경 = 문자열.replace("안녕","Hello")
>>> 
>>> 문자열
'안녕 파이썬 반가워'
>>> 부분변경
'Hello 파이썬 반가워'

 

 

문자열 인덱스

>>> 문자열 = "가나_다"
>>> 문자열[0]
'가'
>>> 문자열[1]
'나'
>>> 문자열[2]
'_'
>>> 문자열[3]
'다'
>>> 문자열[4] #에러발생
Traceback (most recent call last):
  File "<pyshell#123>", line 1, in <module>
    문자열[4]
IndexError: string index out of range

 

 

문자열 슬라이싱

>>> 문자열 = "안녕 파이썬 반가워"
>>>
>>>#문자열 슬라이싱
>>> 문자열[0]
'안'
>>> 문자열[0:5]
'안녕 파이'
>>> 문자열[1:6]
'녕 파이썬'
>>> 
>>> #거꾸로 슬라이싱
>>> 문자열[0:-1]
'안녕 파이썬 반가'
>>> 문자열[0:-5]
'안녕 파이'
>>> 문자열[-5:-1]
'썬 반가'

 

 

특정 단어 검색, 위치, 개수 확인(in, find)

>>> 문자열 = "월 화 수 목 금 금 금"
>>> 
>>>#in 키워드를 통한 참 거짓 반환
>>> "월" in 문자열
True
>>> "금" in 문자열
True
>>> "토" in 문자열
False
>>> "일" in 문자열
False


>>>#find함수를 이용한 문자열의 특정 문자 위치 반환
>>> 문자열.find("월")
0
>>> 문자열.find("수")
4
>>> 문자열.find("금")
8
>>> 문자열.find("금")
8


>>>#count함수를 이용한 특정문자 개수 반환
>>> 문자열.count("월")
1
>>> 문자열.count("목")
1
>>> 문자열.count("금")
3

 

 

문자열 쪼개기와 붙이기(split, join)

>>> 문자열 = "월,화,수,목,금,금,금"
>>>
>>>#문자열 쪼개기
>>> 쪼개기 = 문자열.split(',')
>>> 
>>> print(문자열)
월,화,수,목,금,금,금
>>> print(쪼개기)
['월', '화', '수', '목', '금', '금', '금']
>>>
>>> 쪼개기[0]
'월'
>>> 쪼개기[1]
'화'
>>> 쪼개기[4]
'금'
>>> 쪼개기[6]
'금'
>>>
>>>
>>>#쪼갠문자 붙이기
>>> 붙이기 = '-'.join(쪼개기)
>>> print(쪼개기)
['월', '화', '수', '목', '금', '금', '금']
>>> print(붙이기)
월-화-수-목-금-금-금

 

 

문자열과 반복문

>>> 문자열 = "가나다라마"
>>> for i in 문자열 :
	print(i)
가
나
다
라
마


>>> 문자열 = "거너더러머"
>>> for i in range(0,5,1) :
	print("%s"%문자열[i])
거
너
더
러
머

 

 

(PYTHON)파이썬 전체보기

 

'(PYTHON)파이썬' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

반응형