微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在python中重命名文件名之前比较文件扩展名而没有文件名上的标记

如何解决在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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?