重命名和使用Python移动文件

问题描述 投票:4回答:4

我有一个现有的文件名的文件夹中的参考表进行比较,然后确定是否需要重命名或不python脚本。

由于它遍历每个文件名:

'oldname' = the current file name

'newname' = what it needs to be renamed to

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

我可以做重命名,并在同一时间的举动,因为它通过循环迭代?

更新:道歉,我相当绿色与一般scrpting但是这似乎是非常基本的。 shutil.move正是我所需要的THANKS-我只是不知道要寻找它。以下测试成功。现在,它工作到脚本。

import shutil
os.chdir('C:\Users\me\Desktop\New folder')
renFolder= 'Renamed'
oldname = 'Test.txt'
newname= 'renTest.txt'
shutil.move(oldname, renFolder+'/'+newname)
python file-rename
4个回答
9
投票

如果源和目标位置是在不同的分区/驱动器/装置os.rename(和os.replace)不会工作。如果是这样的话,你需要use shutil.move,如果可能的话,这将使用原子重命名,并退回到复制当时的删除,如果目的地是不一样的文件系统上。这是完全乐意移动都在相同的操作重命名;操作是相同的,无论。


12
投票

是的,你可以做到这一点。在Python中,你可以使用移动功能shutil库来实现这一点。

让我们在Linux上说,你必须在/ home /用户/ Downloads文件夹命名为“的test.txt”文件,并要将其移动到/ home /用户/文件,改变它的名称为“useful_name.txt”。您可以在同一行代码做两件事:

import shutil

shutil.move('/home/user/Downloads/test.txt', '/home/user/Documents/useful_name.txt')

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

import shutil

shutil.move('oldname', 'renamedfiles/newname')

干杯。


1
投票

要做到这两个操作,您可以使用os.rename(src, dest)功能。

你应该有想要的目录保存在文件中,新的文件名。您可以为您在整个循环运行的每一个文件做到这一点。

例如:

dest_dir = "/tmp/2"
new_name = "bar.txt"
current_file_name = "/tmp/1/foo.txt"
os.rename(current_file_name, dest_dir+"/"+new_name)

rename功能允许您更改文件的名称和它在同一时间的文件夹。

为了防止在重命名和文件的移动任何错误,请使用shutil.move


0
投票

在你想要的目录中创建一个Python文件,并写入类似的东西:

import os

for filename in os.listdir("."):
    if(filename ...):
        newFilename = ...
        os.rename(filename, newFilename)
© www.soinside.com 2019 - 2024. All rights reserved.