如何在Python的特定文件夹中更改几个文件名?

朱利安

因此我一直在使用以下代码来更改特定文件夹中所有文件的文件名。

import os
[os.rename(f,f.replace('20180810','2018_08_10')) for f in os.listdir()]

我遇到的问题是,每当我使用此代码时,都必须保存它的副本并将其粘贴到文件所在的文件夹中。我希望能够有一个通用代码,在其中可以指定路径,而不必放在该文件夹中。我尝试了以下操作,但由于某种原因,它说找不到文件:

path = 'E:/CSVFILES/20180808/'
[os.rename(f,f.replace('20180810','2018_08_10')) for f in os.listdir(path)]

如果我运行os.listdir(path),它运行良好,并且显示文件夹中的文件,所以我不确定为什么它不起作用。

谢谢!

提姆

os.listdir列出目录中的所有文件,但没有完整路径,os.replace如果文件不在工作目录中,则需要完整路径。而是使用iglob,它返回完整路径:

>>> from glob import iglob
>>> path = 'E:/CSVFILES/20180808/*'
>>> for f in iglob(path):
>>>     os.rename(f, f.replace('20180810','2018_08_10'))

编辑:由于您的文件位于包含您要替换的相同文本的位置,因此您可以使用basename并且join仅替换文件名中的文本:

>>> from glob import iglob
>>> from os.path import basename, join
>>> path = 'E:/CSVFILES/20180808'
>>> for f in iglob(join(path, "*")):
>>>     os.rename(f, join(path, basename(f).replace('20180810','2018_08_10')))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从特定文件夹中提取文件,文件名存储在python列表中?

如何从文件夹中打印几个随机文件名?

雷鸟更改Maildir文件夹中的文件名

如何使用 Python 更改文件夹中的特定文件扩展名?

在文件夹中搜索大量特定文件名

Dropzone.js-如何在上传到文件夹之前更改文件名

Bash:如何在文件夹中打印第n个文件的文件名

如何更改目录中的文件夹中的文件名?

如何更改文件夹中的所有文件名?

如何快速更改文档文件夹中的文件名

将文件夹中的所有文件名更改为其他Python

如何从 SharePoint 文件夹中获取文件名

如何重命名文件夹中的文件名?

如何列出文件夹中的文件名

如何递归总结文件夹中特定文件名的大小

如何在python中获得具有特定文件夹同级的特定文件夹

如何在文件名之前的路径中添加文件夹?

如何在C ++中将文件名存储在文件夹中以数组的形式?

如何使用文件名的前几个字母创建文件夹?

如何将文件复制到文件中包含文件名的特定文件夹?

递归更改文件夹和子文件夹中的文件名,而无需更改文件路径

如何使用python显示文件夹中Word文档的文件名?

将文件名更改为文件夹名

如何删除文件名中包含特定字符串的文件夹和所有子文件夹中的文件?

如何根据文件名将文件名排序到文件夹中

如何遍历目录中的所有子文件夹,并删除具有特定文件名的文件

如何在python中逐行使用文本文件的新名称重命名文件夹中的文件名

如何在python的differents文件夹中运行几个脚本

如何在控制台中显示文件夹中每个.txt文件的内容及其文件名?