【问题标题】:Python 3.5.1: Change file namePython 3.5.1:更改文件名
【发布时间】:2016-06-28 19:18:55
【问题描述】:
import os
import re
def rename_files():
#get file names from a folder

file_list = os.listdir("/Users/myname/Desktop/Python")
#print (file_list)

saved_path = os.getcwd()
print(saved_path)
os.chdir("/Users/myname/Desktop/Python")

#rename each file 
for file_name in file_list:
    os.rename(file-name, re.sub("[0-9]", "", file_name))
os.chdir(saved_path)

rename_files()

上面的代码应该通过从文件名中删除所有 NUMBERS 来重命名位于特定文件夹中的每个文件,但没有任何改变。任何人都可以帮忙吗?谢谢。

【问题讨论】:

  • 为什么不想匹配文件名末尾的数字?
  • 你检查 re.sub("[0-9](?!\d*$)", "", file_name) 的结果了吗?
  • file-name 来自哪里?错字?
  • @Natecat 因为每个文件名都以数字开头.. 任何文件名的中间或末尾都没有数字..
  • @MosesKoledoye 是的。刚刚编辑它,但仍然无法正常工作.. 谢谢 :)

标签: python python-3.5


【解决方案1】:

从文件名中删除所有 NUMBERS

如果您要删除所有数字,那么为什么需要断言:(?!\d*$)

当你可以做的时候:

os.rename(file_name, re.sub("[0-9]", "", file_name))

而你做错了:

os.rename(file-name, re.sub("[0-9](?!\d*$)", "", file_name))
#             ^

【讨论】:

  • 你说得对,我不需要它.. 已经更新了代码,但仍然.. 谢谢你
  • 您是否注意到您的os.chdir("/Users/mynaame/Desktop/Python")name 中有一个双重a
猜你喜欢
  • 1970-01-01
  • 2022-12-18
  • 2011-02-23
  • 1970-01-01
  • 1970-01-01
  • 2017-04-21
  • 1970-01-01
相关资源
最近更新 更多