Ich möchte a.txt
in b.kml
ändern.
Verwenden Sie os.rename
:
import os
os.rename('a.txt', 'b.kml')
import shutil
shutil.move('a.txt', 'b.kml')
Dies funktioniert, um eine Datei umzubenennen oder zu verschieben.
Die Datei kann sich in einem Verzeichnis befinden. Geben Sie in diesem Fall den Pfad an:
import os
old_file = os.path.join("directory", "a.txt")
new_file = os.path.join("directory", "b.kml")
os.rename(old_file, new_file)
os.rename(old, new)
Dies finden Sie in den Python Dokumenten: http://docs.python.org/library/os.html
Ab Python 3.4 kann man das Modul pathlib verwenden, um dieses Problem zu lösen.
Wenn Sie sich in einer älteren Version befinden, können Sie die zurückportierte Version hier verwenden.
Nehmen wir an, Sie befinden sich nicht im Root-Pfad (nur um ein wenig Schwierigkeit hinzuzufügen), den Sie umbenennen möchten, und müssen einen vollständigen Pfad angeben. Wir können dies betrachten:
some_path = 'a/b/c/the_file.extension'
So können Sie Ihren Weg nehmen und daraus ein Path
-Objekt erstellen:
from pathlib import Path
p = Path(some_path)
Um nur einige Informationen zu diesem Objekt bereitzustellen, das wir jetzt haben, können wir Dinge daraus extrahieren. Wenn Sie beispielsweise aus irgendeinem Grund die Datei umbenennen möchten, indem Sie den Dateinamen von the_file
in the_file_1
ändern, können Sie den Dateinamen-Teil erhalten:
name_without_extension = p.stem
Und auch noch die Erweiterung in der Hand halten:
ext = p.suffix
Wir können unsere Modifikation mit einer einfachen String-Manipulation durchführen:
new_file_name = "{}_{}".format(name_without_extension, 1)
Jetzt können wir unsere Umbenennung durchführen, indem wir die rename
-Methode für das von uns erstellte Pfadobjekt aufrufen und die ext
anhängen, um die gewünschte Umbenennungsstruktur abzuschließen:
p.rename(Path(p.parent, new_file_name + ext))
In Kürze, um seine Einfachheit zu demonstrieren:
from pathlib import Path
p = Path(some_path)
p.rename(Path(p.parent, "{}_{}".format(p.stem, 1) + p.suffix))
Verwenden Sie os.rename
. Sie müssen jedoch den vollständigen Pfad beider Dateien an die Funktion übergeben. Wenn ich eine Datei a.txt
auf meinem Desktop habe, werde ich das auch tun und muss auch voll umbenannte Datei angeben.
os.rename('C:\\Users\\Desktop\\a.txt', 'C:\\Users\\Desktop\\b.kml')
import os
# Set the path
path = 'a\\b\\c'
# save current working directory
saved_cwd = os.getcwd()
# change your cwd to the directory which contains files
os.chdir(path)
os.rename('a.txt', 'b.klm')
# moving back to the directory you were in
os.chdir(saved_cwd)
Sie können os.system verwenden, um ein Terminal aufzurufen, um die Aufgabe auszuführen:
os.system('mv oldfile newfile')
import os
import re
from pathlib import Path
for f in os.listdir(training_data_dir2):
for file in os.listdir( training_data_dir2 + '/' + f):
oldfile= Path(training_data_dir2 + '/' + f + '/' + file)
newfile = Path(training_data_dir2 + '/' + f + '/' + file[49:])
p=oldfile
p.rename(newfile)
import shutil
import os
files = os.listdir("./pics/")
for key in range(0, len(files)):
print files[key]
shutil.move("./pics/" + files[key],"./pics/img" + str(key) + ".jpeg")
das sollte es tun. Python 3+