strncmp in Python

8

Ich analysiere eine Datei mit einer Liste von Pfaden. Ich versuche zu sehen, ob ein Pfad unter einem bestimmten Verzeichnis ist oder nicht. Also ich habe zwei Saiten S1 und S2. Sagen wir, sie sind S1 = '/ tmp /' und S2 = '/tmp/file.txt'

Wenn ich überprüfen will, ob S2 S1 und dann einige zusätzliche Bytes in C hat, würde ich eine Strncmp von S1 und S2 bis Strlen (S1) Bytes tun. Gibt es eine Möglichkeit, das in Python zu tun? Ich bin neu bei Python und kenne noch nicht alle Module, die mir zur Verfügung stehen. Ich könnte dies trivial implementieren, indem ich einfach die Zeichen in den Strings überspringe und vergleiche, aber herausfinden will, ob es irgendetwas gibt, das mir diese Art von Hilfsfunktionen standardmäßig gibt

Danke für jede Hilfe.

P

    
R11 19.02.2013, 02:39
quelle

4 Antworten

11

Ja. Sie können Folgendes tun: if a in b: Das überprüft, ob a eine Teilzeichenfolge irgendwo in b ist.

z.B.

%Vor%

Aus Ihrem Post scheint es, dass Sie nur den Anfang der Strings betrachten möchten. In diesem Fall können Sie die Methode .startswith verwenden:

%Vor%

Ebenso können Sie das gleiche mit endswith tun:

%Vor%

Schließlich wäre die wörtlichste Übersetzung von strncmp die Verwendung von Slicing und == :

%Vor%

Python bietet auch viele Möglichkeiten, mit Pfadnamen im os.path -Modul umzugehen. Es lohnt sich zu untersuchen, was da drin ist. Es gibt einige ziemlich nette Funktionen.

    
mgilson 19.02.2013, 02:42
quelle
2

Sie suchen wahrscheinlich nach os.path.commonprefix .

zum Beispiel: os.path.commonprefix(['/tmp/','/tmp/file.txt']) gibt '/tmp/

zurück

, also sollten Sie nach len(os.path.commonprefix([s1,s2])) > 0

suchen

Sehen Sie sich die Dokumentation hier an: Ссылка

    
rgrinberg 19.02.2013 02:42
quelle
1

Sie können das mit

testen %Vor%

oder noch einfacher:

%Vor%     
Jiangzhou 19.02.2013 02:46
quelle
0

Sie können die Methode find eines Strings verwenden

%Vor%     
Ali-Akber Saifee 19.02.2013 02:43
quelle

Tags und Links