예를 들어 문자열을 얻습니다.
str = "please answer my question"
파일에 쓰고 싶습니다.
그러나 문자열을 파일에 쓰기 전에 문자열의 크기를 알아야합니다. 문자열의 크기를 계산하는 데 어떤 기능을 사용할 수 있습니까?
예를 들어 문자열을 얻습니다.
str = "please answer my question"
파일에 쓰고 싶습니다.
그러나 문자열을 파일에 쓰기 전에 문자열의 크기를 알아야합니다. 문자열의 크기를 계산하는 데 어떤 기능을 사용할 수 있습니까?
답변:
문자열의 길이에 대해 이야기하는 경우 다음을 사용할 수 있습니다 len()
.
>>> s = 'please answer my question'
>>> len(s) # number of characters in s
25
바이트 단위의 문자열 크기가 필요한 경우 다음이 필요합니다 sys.getsizeof()
.
>>> import sys
>>> sys.getsizeof(s)
58
또한 문자열 변수를 호출하지 마십시오 str
. 내장 str()
기능을 숨 깁니다 .
sys.getsizeof
파이썬 객체가 메모리에서 차지하는 바이트 수를 반환합니다. 어떤 상황에서도 파일에 쓰는 데 유용하지 않습니다.
len(s.encode('utf8'))
또는 파일에 쓸 때 다른 인코딩이 사용될 것입니다. 또한 종료 널을 원하면 1을 추가해야합니다.
user225312의 답변 이 맞습니다.
A.str
객체 의 문자 수를 세려면 len()
함수 를 사용할 수 있습니다 .
>>> print(len('please anwser my question'))
25
B.str
객체 를 저장하기 위해 할당 된 메모리 크기를 바이트 단위로 얻으려면 sys.getsizeof()
함수 를 사용할 수 있습니다
>>> from sys import getsizeof
>>> print(getsizeof('please anwser my question'))
50
파이썬 2에서는 복잡해집니다.
A.len()
Python 2 의 함수는 인코딩 된 문자 를 str
객체 에 저장하기 위해 할당 된 바이트 수를 반환 합니다.
때로는 문자 수와 같습니다.
>>> print(len('abc'))
3
그러나 때로는 그렇지 않습니다.
>>> print(len('йцы')) # String contains Cyrillic symbols
6
내부적으로 가변 길이 인코딩을str
사용할 수 있기 때문 입니다. 따라서 문자를 세 려면 객체가 사용 하는 인코딩을 알아야합니다 . 그런 다음 객체 로 변환하고 문자 수를 얻을 수 있습니다.str
str
unicode
>>> print(len('йцы'.decode('utf8'))) #String contains Cyrillic symbols
3
B. 이 sys.getsizeof()
함수는 Python 3에서와 동일한 기능을 수행합니다 . 전체 문자열 객체 를 저장하기 위해 할당 된 바이트 수를 반환 합니다.
>>> print(getsizeof('йцы'))
27
>>> print(getsizeof('йцы'.decode('utf8')))
32
str.len ()을 사용하여 열의 요소 길이를 계산할 수도 있습니다
data['name of column'].str.len()