【问题标题】:Renaming files does nothing Python 2.7重命名文件没有任何作用 Python 2.7
【发布时间】:2019-05-09 21:16:47
【问题描述】:

我正在重命名目录中的文件。我运行下面的代码没有错误,但文件保持相同的名称。

dir = 'H:\Projects\test'
files = glob.glob(dir)
files.sort(key=os.path.getmtime)
for i, file in enumerate(files):
    try:    
       os.rename(file, '{dir}/attachment-{i}.txt')
       break
    except:
        print('rename failed')

目录有多种文件类型。所以,无论如何我都需要它们重命名。 我做错了什么?

【问题讨论】:

  • 一个文件重命名了吗?如果是这样,continue 而不是 break。或者,只需删除 break
  • 没有文件被重命名。最后有 .txt 有关系吗?

标签: python-2.7 file-rename


【解决方案1】:

看看您对enumerate(...) 的调用实际上返回了什么。

您的glob.glob(...) 行看起来只会返回您指定的目录,而不是其内容。如果您希望返回目录的内容,而不是

dir = 'H:\Projects\test'

试试

dir = 'H:\\Projects\\test\\*'

双反斜杠是必要的转义字符,末尾的星号告诉 glob 命令您对目录的内容感兴趣,而不是目录本身。

祝你好运!

【讨论】:

  • 感谢您的帮助!我如何查看 enumerate() 返回的内容?我收到 WindowsError:[错误 3] 系统找不到指定的路径。
  • 只打印它的返回值(在你的例子中,我和文件)
  • 它只返回文件夹中的一项而不是所有内容。
猜你喜欢
  • 2016-10-14
  • 2017-01-14
  • 2018-12-17
  • 2017-10-06
  • 1970-01-01
  • 2013-08-24
  • 2019-12-29
  • 1970-01-01
  • 2018-08-06
相关资源
最近更新 更多