객체 지향 Python-파일 및 문자열
문자열
문자열은 모든 프로그래밍 언어에서 가장 많이 사용되는 데이터 유형입니다. 왜? 우리는 숫자보다 텍스트를 더 잘 이해하기 때문에 쓰기와 말하기에서 텍스트와 단어를 사용하고 프로그래밍에서도 마찬가지로 문자열을 사용합니다. 문자열에서 텍스트를 구문 분석하고 텍스트 의미를 분석하고 데이터 마이닝을 수행합니다.이 모든 데이터는 사람이 소비하는 텍스트입니다. Python의 문자열은 변경 불가능합니다.
문자열 조작
Python에서 문자열은 여러 줄 문자열의 경우 작은 따옴표 ( '), 큰 따옴표 ( ") 또는 심지어 삼중 따옴표 (' '')를 사용하여 여러 방법으로 표시 할 수 있습니다.
>>> # String Examples
>>> a = "hello"
>>> b = ''' A Multi line string,
Simple!'''
>>> e = ('Multiple' 'strings' 'togethers')
문자열 조작은 모든 언어에서 매우 유용하고 널리 사용됩니다. 종종 프로그래머는 문자열을 분해하고 면밀히 조사해야합니다.
문자열은 반복 (문자 단위), 슬라이스 또는 연결될 수 있습니다. 구문은 목록과 동일합니다.
str 클래스에는 문자열을 더 쉽게 조작 할 수있는 수많은 메소드가 있습니다. dir 및 help 명령은 Python 인터프리터에서 사용 방법에 대한 지침을 제공합니다.
다음은 우리가 사용하는 일반적으로 사용되는 문자열 메서드 중 일부입니다.
Sr. 아니. | 방법 및 설명 |
---|---|
1 | isalpha() 모든 문자가 알파벳인지 확인 |
2 | isdigit() 숫자 문자 확인 |
삼 | isdecimal() 10 진수 문자 확인 |
4 | isnumeric() 숫자 확인 |
5 | find() 하위 문자열의 최고 인덱스를 반환합니다. |
6 | istitle() Titlecased 문자열 확인 |
7 | join() 연결된 문자열을 반환합니다. |
8 | lower() 소문자 문자열을 반환합니다. |
9 | upper() 대문자 문자열을 반환합니다. |
10 | partion() 튜플을 반환합니다. |
11 | bytearray() 주어진 바이트 크기의 배열을 반환합니다. |
12 | enumerate() 열거 형 개체를 반환합니다. |
13 | isprintable() 인쇄 가능한 문자 확인 |
몇 가지 문자열 메서드를 실행 해 보겠습니다.
>>> str1 = 'Hello World!'
>>> str1.startswith('h')
False
>>> str1.startswith('H')
True
>>> str1.endswith('d')
False
>>> str1.endswith('d!')
True
>>> str1.find('o')
4
>>> #Above returns the index of the first occurence of the character/substring.
>>> str1.find('lo')
3
>>> str1.upper()
'HELLO WORLD!'
>>> str1.lower()
'hello world!'
>>> str1.index('b')
Traceback (most recent call last):
File "<pyshell#19>", line 1, in <module>
str1.index('b')
ValueError: substring not found
>>> s = ('hello How Are You')
>>> s.split(' ')
['hello', 'How', 'Are', 'You']
>>> s1 = s.split(' ')
>>> '*'.join(s1)
'hello*How*Are*You'
>>> s.partition(' ')
('hello', ' ', 'How Are You')
>>>
문자열 서식
Python 3.x에서는 문자열 형식이 변경되어 이제 더 논리적이고 더 유연 해졌습니다. 포맷은 format () 메서드 또는 포맷 문자열의 % 기호 (이전 스타일)를 사용하여 수행 할 수 있습니다.
문자열은 중괄호 {}로 구분 된 리터럴 텍스트 또는 대체 필드를 포함 할 수 있으며 각 대체 필드에는 위치 인수의 숫자 인덱스 또는 키워드 인수의 이름이 포함될 수 있습니다.
통사론
str.format(*args, **kwargs)
기본 서식
>>> '{} {}'.format('Example', 'One')
'Example One'
>>> '{} {}'.format('pie', '3.1415926')
'pie 3.1415926'
아래 예제에서는 인수를 변경하지 않고 표시 순서를 다시 정렬 할 수 있습니다.
>>> '{1} {0}'.format('pie', '3.1415926')
'3.1415926 pie'
패딩 및 정렬 문자열
값은 특정 길이로 채워질 수 있습니다.
>>> #Padding Character, can be space or special character
>>> '{:12}'.format('PYTHON')
'PYTHON '
>>> '{:>12}'.format('PYTHON')
' PYTHON'
>>> '{:<{}s}'.format('PYTHON',12)
'PYTHON '
>>> '{:*<12}'.format('PYTHON')
'PYTHON******'
>>> '{:*^12}'.format('PYTHON')
'***PYTHON***'
>>> '{:.15}'.format('PYTHON OBJECT ORIENTED PROGRAMMING')
'PYTHON OBJECT O'
>>> #Above, truncated 15 characters from the left side of a specified string
>>> '{:.{}}'.format('PYTHON OBJECT ORIENTED',15)
'PYTHON OBJECT O'
>>> #Named Placeholders
>>> data = {'Name':'Raghu', 'Place':'Bangalore'}
>>> '{Name} {Place}'.format(**data)
'Raghu Bangalore'
>>> #Datetime
>>> from datetime import datetime
>>> '{:%Y/%m/%d.%H:%M}'.format(datetime(2018,3,26,9,57))
'2018/03/26.09:57'
문자열은 유니 코드입니다.
불변의 유니 코드 문자 모음으로서의 문자열. 유니 코드 문자열은 ASCII 문자뿐만 아니라 가능한 모든 문자를 나타낼 수 있으므로 어디서나 작동하는 소프트웨어 또는 프로그램을 만들 수있는 기회를 제공합니다.
많은 IO 작업은 bytes 객체가 텍스트 데이터를 참조하더라도 바이트를 처리하는 방법 만 알고 있습니다. 따라서 바이트와 유니 코드 간의 교환 방법을 아는 것이 매우 중요합니다.
텍스트를 바이트로 변환
문자열을 바이트 객체로 변환하는 것을 인코딩이라고합니다. 다양한 형식의 인코딩이 있으며 가장 일반적인 형식은 다음과 같습니다. PNG; JPEG, MP3, WAV, ASCII, UTF-8 등. 또한이 (인코딩)는 오디오, 이미지, 텍스트 등을 바이트 단위로 표현하는 형식입니다.
이 변환은 encode ()를 통해 가능합니다. 인코딩 기술을 인수로 사용합니다. 기본적으로 'UTF-8'기술을 사용합니다.
>>> # Python Code to demonstrate string encoding
>>>
>>> # Initialising a String
>>> x = 'TutorialsPoint'
>>>
>>> #Initialising a byte object
>>> y = b'TutorialsPoint'
>>>
>>> # Using encode() to encode the String >>> # encoded version of x is stored in z using ASCII mapping
>>> z = x.encode('ASCII')
>>>
>>> # Check if x is converted to bytes or not
>>>
>>> if(z==y):
print('Encoding Successful!')
else:
print('Encoding Unsuccessful!')
Encoding Successful!
Converting bytes to text
바이트를 텍스트로 변환하는 것을 디코딩이라고합니다. 이것은 decode ()를 통해 구현됩니다. 인코딩에 사용되는 인코딩을 알고 있으면 바이트 문자열을 문자열로 변환 할 수 있습니다.
따라서 인코딩과 디코딩은 역 프로세스입니다.
>>>
>>> # Python code to demonstrate Byte Decoding
>>>
>>> #Initialise a String
>>> x = 'TutorialsPoint'
>>>
>>> #Initialising a byte object
>>> y = b'TutorialsPoint'
>>>
>>> #using decode() to decode the Byte object
>>> # decoded version of y is stored in z using ASCII mapping
>>> z = y.decode('ASCII')
>>> #Check if y is converted to String or not
>>> if (z == x):
print('Decoding Successful!')
else:
print('Decoding Unsuccessful!') Decoding Successful!
>>>
파일 I / O
운영 체제는 파일을 텍스트가 아닌 바이트 시퀀스로 나타냅니다.
파일은 관련 정보를 저장하기 위해 디스크에서 명명 된 위치입니다. 디스크에 데이터를 영구적으로 저장하는 데 사용됩니다.
Python에서 파일 작업은 다음 순서로 발생합니다.
- 파일 열기
- 파일 읽기 또는 쓰기 (작업) 파일 열기
- 파일을 닫습니다.
파이썬은 적절한 디코드 (또는 인코딩) 호출로 들어오는 (또는 나가는) 바이트 스트림을 래핑하므로 str 객체를 직접 처리 할 수 있습니다.
파일 열기
파이썬에는 파일을 여는 내장 함수 open ()이 있습니다. 그러면 파일을 읽거나 수정하는 데 사용되는 핸들이라고도하는 파일 개체가 생성됩니다.
>>> f = open(r'c:\users\rajesh\Desktop\index.webm','rb')
>>> f
<_io.BufferedReader name='c:\\users\\rajesh\\Desktop\\index.webm'>
>>> f.mode
'rb'
>>> f.name
'c:\\users\\rajesh\\Desktop\\index.webm'
파일에서 텍스트를 읽으려면 파일 이름을 함수에 전달하기 만하면됩니다. 파일은 읽기 위해 열리고 바이트는 플랫폼 기본 인코딩을 사용하여 텍스트로 변환됩니다.