【问题标题】:A possible loop to rename files in order from a directory?从目录中按顺序重命名文件的可能循环?
【发布时间】:2013-05-27 10:20:20
【问题描述】:

我在一个具有长名称的目录中有 100 个 .fits 文件(例如 spec-0355-51788-0484.fits spec-0493-51957-0157.fits、spec-0367-51997-0430.fits、spec- 0771-52370-0017.fits等...)

我想知道是否有一个循环可以将它们全部重命名为整数序列,使其看起来像 1.fits, 2.fits, 3.fits, 4.fits, .... 100.fits

【问题讨论】:

  • 你做了什么来尝试这个,在 Python 中获取目录中的文件列表很简单,循环是标准的,重命名文件也不困难。

标签: python for-loop rename


【解决方案1】:

我建议尝试一下。 这将通过在文件名前添加索引来重命名文件。

例子:

如何安装.fits、Hello world tutorial.fits、.......

将重命名为

1 如何安装.fits,2 Hello world tutorial.fits,......

import os

path = 'C:/Users/username/Desktop/My files' #path of folder containing files you want to rename
i = 1
for filename in os.listdir(path):
    os.rename(os.path.join(path,filename), os.path.join(path, str(i)+ " " + filename + '.fits'))
    i = i + 1

如果您根本不喜欢放置原始文件名,那么只需删除在 os.path.join 中添加文件名

os.path.join(path, str(i)+ " " + '.fits')) #for not including original file name

【讨论】:

    【解决方案2】:

    你可以试试这个:

    import os
    import glob
    os.chdir("E:/")
    i = 1
    for old_file in glob.glob("*.fits"): 
        new = str(i) + ".fits"
        os.renames(old_file, new)
        i=i+1
    

    【讨论】:

    • @user1821176 你应该把'E:/'改成你的文件所在的目录
    • 是 .txt 应该是 .fits 吗?
    • 不错的答案,只是 file 可能会导致与 file 函数的名称冲突。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-03
    • 2017-04-10
    • 2020-10-20
    • 2015-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多