用python重命名和移动文件

Zip*_*365 8 python file-rename

我有python脚本,将文件夹中的现有文件名与参考表进行比较,然后确定是否需要重命名.

因为它遍历每个文件名:

'oldname' = the current file name

'newname' = what it needs to be renamed to
Run Code Online (Sandbox Code Playgroud)

我想重命名该文件并将其移动到一个新文件夹"..\renamedfiles"

我可以在迭代循环的同时进行重命名和移动吗?

更新:道歉,我对scrpting一般都很绿,但这看起来非常基本.shutil.move正是我需要的感谢 - 我只是不知道要找它.下面的成功测试.现在将其用于脚本.

import shutil
os.chdir('C:\Users\me\Desktop\New folder')
renFolder= 'Renamed'
oldname = 'Test.txt'
newname= 'renTest.txt'
shutil.move(oldname, renFolder+'/'+newname)
Run Code Online (Sandbox Code Playgroud)

小智 15

是的,你可以这样做.在python中,您可以使用shutil库中的move函数来实现此目的.

让我们说在Linux上,你有一个名为"test.txt"的/ home/user/Downloads文件夹中的文件,你想将它移动到/ home/user/Documents,并将名称更改为"useful_name.txt".您可以在同一行代码中执行这两项操作:

import shutil

shutil.move('/home/user/Downloads/test.txt', '/home/user/Documents/useful_name.txt')
Run Code Online (Sandbox Code Playgroud)

在你的情况下,你可以这样做:

import shutil

shutil.move('oldname', 'renamedfiles/newname')
Run Code Online (Sandbox Code Playgroud)

干杯.


Sha*_*ger 9

os.renameos.replace如果源位置和目标位置位于不同的分区/驱动器/设备上,则(和)将不起作用.如果是这种情况,则需要使用shutil.move,如果可能,将使用原子重命名,如果目标不在同一文件系统上,则需要回退到copy-then-delete.在同一操作中移动和重命名都非常高兴; 无论如何操作都是一样的.

  • @norman_h:嗯......这是对我的回答的解释?它会在可能的情况下进行原子重命名,并在它们不在同一文件系统上时回退到复制然后删除。 (3认同)