【问题标题】:Change file names inside a directory using python使用python更改目录内的文件名
【发布时间】:2021-04-07 04:02:52
【问题描述】:

我需要更改文件夹内的文件名

我的文件名是

BX-002-001.pdf
DX-001-002.pdf
GH-004-004.pdf
HJ-003-007.pdf

我需要在末尾的“-”之后添加一个额外的零,像这样

BX-002-0001.pdf
DX-001-0002.pdf
GH-004-0004.pdf
HJ-003-0007.pdf

我试过了

all_files = glob.glob("*.pdf")
for i in all_files:
    fname = os.path.splitext(os.path.basename(i))[0]
    fname = fname.replace("-00","-000")

我的代码不起作用,有人可以帮忙吗?

【问题讨论】:

  • 您正在修改包含文件名作为字符串的变量,但您没有重命名文件。这个答案对你有帮助吗? Python program to rename file names while overwriting if there already is that file
  • “不工作”是什么意思?是否无法重命名文件?它是否错误地重命名了它?它会导致您的计算机爆炸吗? “我的代码不起作用,为我修复它”在这里是题外话。您必须提出一个具体的问题。请收下tour 并阅读How to Ask
  • @PranavHosangadi 我认为文件没有被重命名很明显,而且修复也很明显可以写一个答案。所以没有伤害。
  • @wuerfelfreak 无论是否明显,“我的代码不起作用”都必须包含对它应该如何工作以及实际作用的描述。 OP 应该向在这里志愿服务的人们提供尽可能多的相关信息。

标签: python rename


【解决方案1】:

fname = fname.replace("-00","-000") 仅更改程序中的变量fname。它不会更改磁盘上的文件名。

您可以使用os.rename() 将更改实际应用到您的文件:

all_files = glob.glob("*.pdf")
for i in all_files:
    fname = os.path.splitext(os.path.basename(i))[0]
    fname = fname.replace("-00","-000")
    os.rename(i, os.path.join(os.path.dirname(i), fname ))

【讨论】:

    猜你喜欢
    • 2016-04-29
    • 1970-01-01
    • 2021-09-30
    • 2022-12-18
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 2020-12-26
    相关资源
    最近更新 更多