如何解决在python中重命名文件名之前比较文件扩展名而没有文件名上的标记
我是 Python 新手。目前,我正在制作一个脚本来比较文件并在特定文件夹中重命名它。如果文件是 csv 或 exl,则将其重命名为 report.csv 并移至文件夹。
我当前的问题是...我的笔记本电脑没有问题,但是当我在其他笔记本电脑上运行脚本时,文件名显示为数组,它不允许我正确更新名称:(数字,'文件名')。示例输出:
("(1,'桌面',".ini')") ("(2,'下载数据')",'') ("(3,'pycharm-community-2020.3.5",".exe')")
我的代码如下:
import os
from os import path
import shutil
import time
def rename():
os.chdir(r'C:\Users\admin\Downloads')
for filename in enumerate(os.listdir()):
src= filename
ext=os.path.splitext(str(src))
print(ext)
if ext== ".csv":
src=str(filename)
dest=r'C:\ReportDown\LateReport\matic.csv'
print(src)
os.rename(src,dest)
rename()
谁能指导我如何比较文件夹中的文件是否为 csv 文件,然后重命名并移动到新文件夹?
非常感谢
解决方法
您不需要 enumerate()
。只需执行 for filename in os.listdir():
就可以了。
enumerate()
函数用于当您要遍历项目和 索引时,在这种情况下,您只需要项目本身。如果您想使用 enumerate,则必须改用 for index,filename in enumerate(os.listdir()):
,因为 enumerate 为您提供 元组 (index,value)。在这里,您的代码正在将整个元组转换为字符串,然后尝试将其用作文件名,这会破坏程序。
此外,os.listdir()
应该已经为您提供字符串,因此无需执行 str(filename)
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。