webentwicklung-frage-antwort-db.com.de

So benennen Sie eine Datei mit Python um

Ich möchte a.txt in b.kml ändern.

220
zjm1126

Verwenden Sie os.rename :

import os

os.rename('a.txt', 'b.kml')
411
YOU
import shutil

shutil.move('a.txt', 'b.kml')

Dies funktioniert, um eine Datei umzubenennen oder zu verschieben.

42
Andy Balaam

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)
40
Abdul Razak

os.rename(old, new)

Dies finden Sie in den Python Dokumenten: http://docs.python.org/library/os.html

15
Joe

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))
10
idjaw

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')
5
rajput56
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)
4
Tilak

Sie können os.system verwenden, um ein Terminal aufzurufen, um die Aufgabe auszuführen:

os.system('mv oldfile newfile')
1
user5449023
    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)
0
issam
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+

0
Naveen