In meinem Programm habe ich einen Codeabschnitt, der in einem der Verzeichnisse meines Computers nach Pickle-Dateien sucht und ihre Namen in eine Liste einfügt . Danach versuche ich, die Dateierweiterung ".pickle" von jedem der Dateinamen in der Liste zu entfernen, aus Gründen, die hier nicht erläutert werden. Nach dem Durchlaufen der Liste und dem Neudefinieren jedes Elements als das, was es sein würde, wenn es in die eingebaute Funktion "str.replace" übergeben würde und die ".pickle" -Zeichenkette durch "" ersetzt wird, scheinen sich die Namen in der Liste nicht geändert zu haben . Hier ist mein Code:str.replace scheint nicht richtig zu funktionieren, wenn die Zielzeichenfolge in einer Liste enthalten ist
import os
file_names = [file for file in os.listdir("C:/~~/dir") if file.endswith(".pickle")]
for each in file_names:
each = each.replace(".pickle","")
Die eine Beize-Datei, die ich in der frühen Phase meines Programms der Entwicklung verwende, ist das einzige in dem Verzeichnis.
Das Programm hat keine Fehler ausgelöst.
Der Name der Datei selbst „debugger.pickle“ genannt, und wenn die „dateinamen“ -Liste Druck druckt es
['debugger.pickle']
statt
nur['debugger']
das mein gewünschtes Ergebnis ist.
Einstellen eine Variable zu einem Listenelement und dann die Variable Neuzuweisung der Liste nicht ändern:
Sie es auch kombinieren können. – Barmar