Hoe hernoem je een bestand met Python

Ik wil a.txtwijzigen in b.kml.


Antwoord 1, autoriteit 100%

Gebruik os.rename:

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

Antwoord 2, autoriteit 13%

Bestand kan zich in een map bevinden, specificeer in dat geval het pad:

import os
old_file = os.path.join("directory", "a.txt")
new_file = os.path.join("directory", "b.kml")
os.rename(old_file, new_file)

Antwoord 3, autoriteit 8%

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

Dit werkt om een bestand te hernoemen of te verplaatsen.


Antwoord 4, autoriteit 8%

Vanaf Python 3.4 kan men de module pathlibgebruiken om dit op te lossen.

Als je toevallig een oudere versie gebruikt, kun je de backported-versie gebruiken die hier

Laten we aannemen dat u zich niet in het root-pad bevindt (om het wat moeilijker te maken) dat u wilt hernoemen, en dat u een volledig pad moet opgeven, dan kunnen we dit bekijken:

some_path = 'a/b/c/the_file.extension'

Je kunt dus je pad nemen en er een Path-object van maken:

from pathlib import Path
p = Path(some_path)

Gewoon om wat informatie te geven over dit object dat we nu hebben, kunnen we dingen uithalen. Bijvoorbeeld, als we om welke reden dan ook het bestand willen wijzigen door de bestandsnaam te wijzigen van the_filenaar the_file_1, dan kunnen we het bestandsnaamdeel krijgen:

name_without_extension = p.stem

en houd nog steeds de extensie in de hand:

ext = p.suffix

We kunnen onze modificatie uitvoeren met een eenvoudige stringmanipulatie:

Python 3.6 en groter maken gebruik van F-strings!

new_file_name = f"{name_without_extension}_1"

anders:

new_file_name = "{}_{}".format(name_without_extension, 1)

En nu kunnen we onze hernoemen uitvoeren door de renameMethod op het padobject te bellen dat we de exthebben gemaakt om de juiste hernoemingsstructuur te voltooien die we willen:

p.rename(Path(p.parent, new_file_name + ext))

Binnenkort om de eenvoud te laten zien:

Python 3.6 +:

from pathlib import Path
p = Path(some_path)
p.rename(Path(p.parent, f"{p.stem}_1_{p.suffix}"))

Versies minder dan Python 3.6 Gebruik in plaats daarvan de reeksformaatmethode:

from pathlib import Path
p = Path(some_path)
p.rename(Path(p.parent, "{}_{}_{}".format(p.stem, 1, p.suffix))

Antwoord 5, Autoriteit 3%

os.rename(old, new)

Dit is te vinden in de Python-documenten: http://docs.python.org/library/ os.html


Antwoord 6, autoriteit 2%

Gebruik os.rename. Maar u moet het volledige pad van beide bestanden doorgeven aan de functie. Als ik een bestand a.txtop mijn bureaublad heb, zal ik dat doen en ik moet ook het volledige hernoemde bestand opgeven.

os.rename('C:\\Users\\Desktop\\a.txt', 'C:\\Users\\Desktop\\b.kml')

Antwoord 7

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)

Antwoord 8

Een belangrijk punt om op te merken is dat we moeten controleren of er bestanden bestaan met de nieuwe bestandsnaam.

stel dat als het b.kml-bestand bestaat, het hernoemen van een ander bestand met dezelfde bestandsnaam leidt tot verwijdering van het bestaande b.kml.

import os
if not os.path.exists('b.kml'):
    os.rename('a.txt','b.kml')

Antwoord 9

De Path.renamevan de Pathlib-bibliotheek gebruiken in plaats van os.rename:

import pathlib
original_path = pathlib.Path('a.txt')
new_path = original_path.rename('b.kml')

Antwoord 10

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")

Dit zou het moeten doen. python 3+


Antwoord 11

Als u Windowsgebruikt en u wilt uw duizenden bestanden in een map hernoemen, dan:
U kunt de onderstaande code gebruiken. (Python3)

import os
path = os.chdir(input("Enter the path of the Your Image Folder :  ")) #Here put the path of your folder where your images are stored
image_name = input("Enter your Image name : ") #Here, enter the name you want your images to have
i = 0
for file in os.listdir(path):
    new_file_name = image_name+"_" + str(i) + ".jpg" #here you can change the extention of your renmamed file.
    os.rename(file,new_file_name)
    i = i + 1
input("Renamed all Images!!")

Antwoord 12

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)

Antwoord 13

os.chdir(r”D:\Folder1\Folder2″)
os.rename(src,dst)
#src en dst zouden in Folder2 moeten staan


Antwoord 14

U kunt os.system gebruiken om terminal aan te roepen om de taak te volbrengen:

os.system('mv oldfile newfile')

Other episodes