Zum Beispiel bekomme ich eine Zeichenfolge:
str = "please answer my question"
Ich möchte es in eine Datei schreiben.
Aber ich muss die Größe der Zeichenfolge kennen, bevor ich die Zeichenfolge in die Datei schreibe. Mit welcher Funktion kann ich die Größe der Zeichenfolge berechnen?
python
string
string-length
Babykick
quelle
quelle
Antworten:
Wenn Sie über die Länge der Zeichenfolge sprechen, können Sie Folgendes verwenden
len()
:Wenn Sie die Größe der Zeichenfolge in Bytes benötigen, benötigen Sie
sys.getsizeof()
:Rufen Sie auch Ihre Zeichenfolgenvariable nicht auf
str
. Es schattiert die eingebautestr()
Funktion.quelle
sys.getsizeof
Gibt die Anzahl der Bytes zurück, die das Python-Objekt im Speicher belegt. Das ist unter keinen Umständen nützlich, um in eine Datei zu schreiben.len(s.encode('utf8'))
oder welche andere Codierung auch immer beim Schreiben in die Datei verwendet wird. Wenn sie auch eine abschließende Null wünschen, müssen sie dafür 1 hinzufügen.Python 3:
Die Antwort von user225312 ist richtig:
A. Um die Anzahl der Zeichen im
str
Objekt zu zählen, können Sie folgendelen()
Funktionen verwenden:B. Um die Speichergröße in Bytes zu ermitteln, die dem Speicherobjekt zugewiesen sind
str
, können Sie diesys.getsizeof()
Funktion verwendenPython 2:
Für Python 2 wird es kompliziert.
A. Die
len()
Funktion in Python 2 gibt die Anzahl der Bytes zurück, die zum Speichern codierter Zeichen in einemstr
Objekt zugewiesen wurden .Manchmal entspricht es der Anzahl der Zeichen:
Aber manchmal wird es nicht:
Dies liegt daran, dass die Codierung
str
mit variabler Länge intern verwendet werden kann. Um Zeichen zu zählenstr
, sollten Sie wissen, welche Codierung Ihrstr
Objekt verwendet. Dann können Sie es in einunicode
Objekt konvertieren und die Anzahl der Zeichen ermitteln:B. Die
sys.getsizeof()
Funktion macht dasselbe wie in Python 3 - sie gibt die Anzahl der Bytes zurück, die zum Speichern des gesamten Zeichenfolgenobjekts zugewiesen wurdenquelle
quelle
Sie können auch str.len () verwenden, um die Länge des Elements in der Spalte zu zählen
quelle
Der pythonischste Weg ist die Verwendung von
len()
. Beachten Sie, dass das Zeichen '\' in Escape-Sequenzen nicht gezählt wird und gefährlich sein kann, wenn es nicht richtig verwendet wird.quelle