在 python 中重命名文件名之前比较文件扩展名,文件名上没有标记
Comparing the file extension before renaming file name in python without the mark on file name
我是 python 的新手。目前,我正在制作一个脚本来比较文件并在特定文件夹中重命名它。如果文件是 csv 或 exl,则将其重命名为 report.csv 并移至文件夹。
我当前的问题是...我的笔记本电脑工作正常,但是当我在其他笔记本电脑上 运行 脚本时,文件名显示为数组,它不允许我正确更新名称:(数字, 'filename').例如输出:
("(1, 'desktop", ".ini')")
("(2, 'download data')", '')
("(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 给你 tuples of (index, value)。在这里,您的代码将整个元组转换为字符串,然后尝试将其用作文件名,这会破坏程序。
此外,os.listdir()
应该已经为您提供了字符串,因此不需要 str(filename)
。
我是 python 的新手。目前,我正在制作一个脚本来比较文件并在特定文件夹中重命名它。如果文件是 csv 或 exl,则将其重命名为 report.csv 并移至文件夹。
我当前的问题是...我的笔记本电脑工作正常,但是当我在其他笔记本电脑上 运行 脚本时,文件名显示为数组,它不允许我正确更新名称:(数字, 'filename').例如输出:
("(1, 'desktop", ".ini')") ("(2, 'download data')", '') ("(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 给你 tuples of (index, value)。在这里,您的代码将整个元组转换为字符串,然后尝试将其用作文件名,这会破坏程序。
此外,os.listdir()
应该已经为您提供了字符串,因此不需要 str(filename)
。