【问题标题】:Conditional renaming of files using Python使用 Python 有条件地重命名文件
【发布时间】:2022-11-19 13:55:09
【问题描述】:

首先,我是 Python 语言的完全新手,但我可以看到我可以用 Python 做任何我想做的事。肯定会学到更多!

现在我正在寻求构建一个脚本,该脚本可以重命名我根据 x 和 y 中的预定义布局从显微镜生成的一系列 .tif 文件。例如,如果我有一系列从 7 x 13 扫描(分别为 x 和 y)生成的 .tif,那么总共有 91 个视图。该网格是按行方式以蛇形获取的。生成的文件现在命名为 generic_name_v01z0001,其中 v01 与第一个视图相关。但这些并不代表成像网格,它们只是按顺序编号。对于下游处理,我希望将它们命名为 generic_name_[yy x xx]_z,因此 v01 .tif 将为 00 x 00,而 v91 .tif 将为 13 x 07。

有人可以指出我如何处理这个问题的正确方向吗?

编辑:Z0001 是按顺序上升到 v01 的末尾。例如,v01 中的最后一个 .tif 将是 generic_name_v01_z0238

【问题讨论】:

    标签: python-3.x file-rename


    【解决方案1】:

    这是总体思路。不清楚当你从 1-91 和 00x00 到 13x07 时哪个 x/y 坐标会首先增加,位置太多 (14x8),所以我从 00x00 到 12x06。您可能需要调整编号。

    一旦 print 显示您想要的命令,将其注释掉并取消注释 os.rename

    import os
    
    for i in range(1,92):
        src = f'generic_name_v{i:02}z0001.tif'
        x, y = divmod(i-1, 13)
        dst = f'generic_name_[{y:02} x {x:02}]_z.tif'
        print(f'os.rename({src!r}, {dst!r})')
        # os.rename(src, dst)
    

    输出:

    os.rename('generic_name_v01z0001.tif', 'generic_name_[00 x 00]_z.tif')
    os.rename('generic_name_v02z0001.tif', 'generic_name_[01 x 00]_z.tif')
    ...
    os.rename('generic_name_v90z0001.tif', 'generic_name_[11 x 06]_z.tif')
    os.rename('generic_name_v91z0001.tif', 'generic_name_[12 x 06]_z.tif')
    

    【讨论】:

    • 感谢您及时的回复。事实上,如果我从 (00x00) 开始,它将是 (12x06)。一个我忘了提到的混杂因素(专业变形),但 z0001 是一个计数器,需要上升到下一个 v{i:02}。到目前为止的输出确实符合我正在寻找的内容,所以我寄予厚望!
    猜你喜欢
    • 1970-01-01
    • 2021-12-21
    • 2013-08-24
    • 2016-01-01
    • 2014-10-10
    • 1970-01-01
    • 2010-11-22
    • 2020-05-17
    相关资源
    最近更新 更多