2016-09-15 4 views
0

Ich versuche, schlecht, zwei Listen von Dateinamen zu vergleichen und eine Liste der Unterschiede bereitzustellen. Ich habe die zahlreichen verfügbaren Beispiele gelesen und versucht. Bevor Sie das als Duplikat schließen oder bereits beantwortet haben, lesen Sie bitte weiter.Trimmen Zeichenfolge von Oracle

In Python, ich mache einen Anruf über FTP, um eine Liste von Dateien zu erhalten. Dies gibt ein Array wie erwartet zurück. Als nächstes rufe ich Oracle an, um eine Liste von Dateinamen abzurufen. Dies gibt ein Array von Dateinamen zurück, aber das Modul cx_oracle gibt sie als ('filename',) zurück. Wenn ich einen Vergleich mache, vergleicht er den Dateinamen mit ('filename',) und schlägt fehl. Ich muss das einfache Anführungszeichen, die Klammern und das Komma vor dem Vergleich entfernen. Aber ich habe kein Glück. Ich versuche, diese zusätzlichen Zeichen mithilfe von Slicing aus der Zeichenfolge zu entfernen, aber dies schlägt fehl.

Dies gibt () statt Dateinamen wie erwartet zurück. Ich habe versucht, die Zeichenfolge zu schneiden, ich habe versucht, awk zu verwenden, aber die Metazeichen machen dies schwierig.
Wenn jemand Anleitung bieten kann, würde ich es sehr schätzen. Ich habe Stunden auf etwas verbracht, das Minuten hätte dauern sollen.

Danke, Allan

+0

Könnten Sie laufen 'Typ()' auf sagen erlaubt der '('Dateiname',)' Ausgabe. Ich vermute, es ist ein Tupel. – AlexLordThorsen

+0

Welches Ergebnis haben Sie von der Druckdatei erhalten? –

+0

Mit type ist es ein Tupel. Das Beispiel von AlexLordThorsen hat das Rätsel gelöst. Ich habe ein einzelnes Beispiel und arbeite Zeile für Zeile. Danke für die Hilfe. –

Antwort

0

Also zunächst einmal, wenn Sie Zeichen von beiden Seiten einer Zeichenfolge entfernen möchten, können Sie lstrp und rstrip verwenden.

>>> "('filename')".lstrip("('") 
'filename')' 
>>> "('filename')".rstrip("')") 
"('filename" 

Aber ich vermute, dass die Rückgabedaten tatsächlich ein Tupel und kein String

>>> ('filename',) 
('filename',) 
>>> type(('filename',)) 
<class 'tuple'> 
>>> ('filename',)[2:20] 
() 

Welche Sie

('filename',)[0] 
'filename' 
Verwandte Themen