【问题标题】:Rename files based on filenames in a csv根据 csv 中的文件名重命名文件
【发布时间】:2017-12-23 02:38:17
【问题描述】:

我有一个 csv 文件“names.csv”,其中包含“old_name”和“new_name”两列,这样每一行都有对应于旧文件名的新名称。 我想用新名称替换“/home/docs/abc”目录中文件的所有旧文件名。 (名称文件在同一目录中,无需更改其名称)。我厌倦了 csv 模块和数组方法,但无法获得结果。文件扩展名将保持不变'.csv'

【问题讨论】:

    标签: python file csv rename


    【解决方案1】:

    您可以通过内置库 oscsv 来做到这一点

    Python 代码:

    import os
    import csv
    
    with open('names.csv') as f:
        lines = csv.reader(f)
        for line in lines:
            os.rename(line[0], line[1])
    

    names.csv 示例:

    old_name.txt, new_name.txt
    old_name.jpg, new_name.jpg
    

    在这种情况下,您的 python 代码必须与 csv 文件位于同一目录中

    【讨论】:

    • 感谢您的回答,但它显示以下错误: Traceback(最近一次调用最后一次):文件“renamefile.py”,第 9 行,在 os.rename(line[0] , line[1]) OSError: [Errno 2] No such file or directory
    • 我的旧文件名是批量在线下载的默认文件名,如 SearchResults(1).csv、SearchResults(2).csv、SearchResults(3).csv......
    • 它们与执行脚本的目录是否相同?如果没有,则必须将路径的那部分添加到文件名中
    • 如果您的 csv 文件与您的脚本不在同一目录中?您必须指定 csv 文件的路径 with open('path/to/names.csv') as f:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-05
    • 2013-10-25
    • 2021-08-10
    • 1970-01-01
    • 2014-06-01
    • 2019-05-14
    • 2015-02-01
    相关资源
    最近更新 更多