从一个文件夹重写文件并重命名它们[重复]

Posted

技术标签:

【中文标题】从一个文件夹重写文件并重命名它们[重复]【英文标题】:Rewrite files from one folder an other and rename them [duplicate] 【发布时间】:2020-09-15 10:47:54 【问题描述】:

一个简短的问题。我桌面上的 tester 文件夹中有多个文件。现在我想重写所有这些文件,在它们的文件名末尾添加“已移动”,并将它们移动到我桌面上一个名为 tester1 的新文件夹中。有人知道吗?先感谢您。这是我当前的代码:

source = r'c:\data\AS\Desktop\tester'

#Take the absolute filepaths from all the files in tester and open them.
for file in os.listdir(source):
    file_paths = os.path.join(source, file)
    with open(file_paths, 'r') as rf:
        print(rf.read() + '\n')

【问题讨论】:

这能回答你的问题吗? How to move a file? 它不像我的那样具体:( 不要读取文件,然后将内容写入新文件,只需执行正常的文件复制/重命名操作:***.com/questions/123198/… 您想重写文件还是只是将它们移动到一个修改了名称的新位置? 我想将它们移动到一个新的位置并修改了名称。 【参考方案1】:

如果您的文件中有扩展名并且您希望在扩展名之前添加“已移动”,则以下代码将起作用:

    import os
    import shutil

    src_path = "c:/data/AS/Desktop/tester/"
    dest_path = "c:/data/AS/Desktop/tester1/"

    for file in os.listdir(src_path):
        file_name, extension = file.split(".")
        shutil.move(src_path + file, dest_path + file_name + "moved." + extension)

如果您的文件中没有扩展名,则可以将代码更改如下:

    import os
    import shutil

    src_path = "c:/data/AS/Desktop/tester/"
    dest_path = "c:/data/AS/Desktop/tester1/"

    for file_name in os.listdir(src_path):
        shutil.move(src_path + file_name, dest_path + file_name + "moved")

我已经在 MacOS 中检查了这一点,如果您在 Windows 中遇到任何问题,请在 cmets 中告诉我。

【讨论】:

我使用了你的第二个代码块,看起来很合乎逻辑,但我收到以下错误:[Errno 2] No such file or directory: 你现在可以检查一下吗,我刚刚解决了路径的问题。 现在成功了,非常感谢!但是你实际上做了什么改变或做了什么来让它发挥作用? 我将反斜杠替换为正斜杠,并在路径末尾添加了一个斜杠。 你为什么选择改变那些斜线?路径名前不能使用“r”吗?【参考方案2】:

这里有一些你可以使用的东西:-

import os
SourceFile="C:/Myfolder/Source/MyFile.txt"
TargetFile="C:/MyFolder/Target/MyFile_moved.txt"
os.rename(SourceFile,TargetFile)

希望有所帮助。

【讨论】:

我收到以下错误:[WinError 2] 系统找不到指定的文件: 我已经更新了代码给你完整的例子,这样你就可以尝试了。您得到的错误可能是由于文件的路径或不存在(很可能是路径)。您可以使用“\”而不是“/”。请检查一次。 还是谢谢你,但我已经使用了上面的答案,这使得多个文件成为可能。 没有问题。很高兴听到您找到了适合您的解决方案。

以上是关于从一个文件夹重写文件并重命名它们[重复]的主要内容,如果未能解决你的问题,请参考以下文章

外壳移动文件并重命名它们

java 把文件从一个目录,移动到另一目录并重命名。

查找相同图片并重命名

重命名文件时忽略错误58

重命名文件时忽略错误 58

使用Python复制和重命名excel文件[重复]