Python实现批量获取当前文件夹下的文件名

 更新时间:2024年02月04日 09:02:03   作者:PythonFun  
这篇文章主要为大家详细介绍了如何利用Python实现批量获取当前文件夹下的文件名,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

最近,在和网友交流时,对方推荐了一个视频,我打开一看,是一个手工获取当前目录下所有文件名的手机视频。用的方法是在win11中复制所有文件的路径,然后粘贴到Excel当中,通过查找替换和分列的方法,清除冗余部分,最后得到文件名。

这种方法很巧妙,没有借助于编程或者不太常见的软件就获取了文件名。我随后也探索了一些简便的方法和大家一起来分享。

先说一下要求:获取当前文件夹下的所有png文件,不包括扩展名。

一、复制路径法——简单方便

使用快捷键ctrl+a来全先当前文件,然后选择资源管理器上方的【复制路径】,得到所有文件的路径。

获取文件路径

接着,把这些路径放到Excel文件当中,通过【查找替换】获取所有文件名,这是可以把不是png的文件删除,然后再把A列按照【.】分列,这样就得到了所有图片的文件名。

查找替换

这种方法简单、实用,没有什么技术含量,小白也能轻松上手。如果当前目录下多种类型文件混杂,那么还要一行一行删除不符合要求的路径。解决的办法是把文件按照类型排列,然后再选中获取路径。

二、Dos命令法

Dos命令是windows不断更新却从未放弃的内置功能,想当前我学计算机可是从dos开始学起,它的命令有时非常强大,比在windows下操作简单多了。

为了获取当前目录下的文件名,我们可以在当前目录上方输入【cmd】,进入dos界面。

在当前目录下进入dos

然后,输入命令:

dir *.png /b > filename.csv

把文件名写入csv文件

这样,我们就把扩展名为png的所有文件的文件名写入到了filename.csv文件当中。我们可以用Excel打开这个csv文件,再进行分列就可以了。

dos命令写入当前目录下的文件名

这种方法明显减少了操作步骤,不仅对文件名进行了筛选,也不用再复制和粘贴了,几乎是一步到位把文件名写入到了Excel文件当中。当然,这种方法虽然简便,但是无法提取子目录中的文件名。

三、批处理命令法

批处理命令比一般的dos命令更强大,因为它可以便历子目录,甚至还可以批量创建文件,比如上面的写入文件名到csv文件中的dos命令还可以改写为以下批处理命令:

for %F in (*.png) do @echo %F>>file.csv

以上命令的功能是列出当前目录下所有 .png 文件的文件名(扩展名),并将结果追加到 filename.csv文件中。

如果不想带扩展名,也可以用以下代码一键实现:

for %F in (*.png) do @echo %~nF>>file.csv

在上面的二条命令中, for 循环来遍历当前目录下所有的 .png 文件。

for %F in (*.png):这是 for 命令的语法,它会遍历当前目录下所有文件名匹配 *.png 的文件。 %F 是循环变量,它代表当前正在处理的文件名。

do @echo %~nF>>file.txt:do 关键字指示在每次迭代时要执行的命令。@echo %~nF 用于打印当前文件名的文件名部分(不带扩展名)。

%~nF 是获取 %F 的文件名部分的语法。

>>file.txt 表示将输出追加到 file.txt 文件末尾,而不是覆盖原有内容。

四、Python命令法

如果电脑上安装的有python,还可以使用Python编程的方法,导入os或者pathlib模块,通过遍历列表中的每一个元素,把它们追加到Excel表中,然后再保存即可轻松实现指定文件名。

#导入模块
import os
from openpyxl import Workbook
 
# 创建一个工作簿对象
wb = Workbook()
 
# 激活第一个工作表
ws = wb.active
 
# 你的列表数据
data = [file for file in os.listdir() if file.endswith(".png")]
# 如果不要扩展名,则可以这样写:
# data = [os.path.splitext(file)[0],for file in os.listdir() if file.endswith(".png")]
# 将数据逐行写入工作表
        
for row in data:
    ws.append([row])
 
# 保存工作簿
wb.save('output.xlsx')

五、VBA 方法

如果经常需要获取当前目录下的所有文件名,就可以用下面的VBA代码:

Sub GetFileNames()
    Dim FileSystem As Object
    Dim Folder As Object
    Dim File As Object
    Dim i As Integer
    
    ' 清空Sheet1中的数据
    Sheets("Sheet1").Cells.Clear
    
    ' 创建FileSystem对象
    Set FileSystem = CreateObject("Scripting.FileSystemObject")
    
    ' 获取当前目录路径
    Set Folder = FileSystem.GetFolder(ThisWorkbook.Path)
    
    ' 在Sheet1中显示文件名
    i = 1
    For Each File In Folder.Files
        Sheets("Sheet1").Cells(i, 1).Value = File.Name
        i = i + 1
    Next File
End Sub

我们可以将上面的代码复制并粘贴到 Excel 的 VBA 编辑器中(按下 Alt + F11 打开),然后在工程资源管理器中的 Microsoft Excel Objects 中找到 ThisWorkbook,双击打开,将代码粘贴到打开的代码窗口中。然后关闭 VBA 编辑器,保存文件。

每当你运行 GetFileNames这个宏时,它将在 Sheet1 中列出当前目录下的所有文件名。如下图所示:

这种方法是一步到位,轻松获取了所有的文件名。不过要注意,VBA运行时会清空Sheet1中的数据,所以保证当前工作表是sheet1,然后没有其它重要数据。

六、学后反思

同一功能我们可以采用多种方法来实现,从手工复制粘贴到后来的dos命令或者编程,我都可以轻松实现达到最后的目标。大家可以根据自己喜好来进行取舍。第一种方法简单好记,建议小白学习。第二种和第三种方法涉及dos命令,需要大家记忆一下。第三种和第四种分别保存在py和xls文件中,基本上是开箱即用。

到此这篇关于Python实现批量获取当前文件夹下的文件名的文章就介绍到这了,更多相关Python获取文件名内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python读取查看npz/npy文件数据以及数据完全显示方法实例

    python读取查看npz/npy文件数据以及数据完全显示方法实例

    前两天从在GitHub下载了一个代码,其中的数据集是.npz结尾的文件,之前没有见过不知道如何处理,下面这篇文章主要给大家介绍了关于python读取查看npz/npy文件数据以及数据完全显示方法的相关资料,需要的朋友可以参考下
    2022-04-04
  • Python中 is 和 ==的区别使用小结

    Python中 is 和 ==的区别使用小结

    是不是刚学Python没多久的童鞋们,就经常被 is 和 == 搞得晕头转向,本文主要介绍了Python中 is 和 ==的区别使用小结,具有一定的参考价值,感兴趣的可以了解一下
    2025-10-10
  • 基于Python如何使用AIML搭建聊天机器人

    基于Python如何使用AIML搭建聊天机器人

    AIML,全名为Artificial Intelligence Markup Language(人工智能标记语言),是一种创建自然语言软件代理的XML语言,是由Richard Wallace和世界各地的自由软件社区在1995年至2002年发明的,通过本文给大家介绍基于Python如何使用AIML搭建聊天机器人,需要的朋友一起学习
    2016-01-01
  • ID3决策树以及Python实现详细过程

    ID3决策树以及Python实现详细过程

    决策树是我本人非常喜欢的机器学习模型,非常直观容易理解,并且和数据结构的结合很紧密,下面这篇文章主要给大家介绍了关于ID3决策树以及Python实现的相关资料,需要的朋友可以参考下
    2024-01-01
  • Python实现屏幕代码雨效果的示例代码

    Python实现屏幕代码雨效果的示例代码

    这篇文章主要介绍了如何利用Python中的Pygame模块实现代码雨效果,文中通过示例代码介绍的非常详细,感兴趣的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • python shell命令行中import多层目录下的模块操作

    python shell命令行中import多层目录下的模块操作

    这篇文章主要介绍了python shell命令行中import多层目录下的模块操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • 使用pyecharts生成Echarts网页的实例

    使用pyecharts生成Echarts网页的实例

    今天小编就为大家分享一篇使用pyecharts生成Echarts网页的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • Python+radar实现随机日期时间的生成

    Python+radar实现随机日期时间的生成

    Python有广泛丰富的第三方库,在没有特殊定制下,避免了重复造轮子。本文将利用radar库实现生成随机的日期或时间,文中的示例代码讲解详细,感兴趣的可以了解一下
    2022-05-05
  • Python中的shape[0]、shape[1]和shape[-1]使用方法

    Python中的shape[0]、shape[1]和shape[-1]使用方法

    shape函数是Numpy中的函数,它的功能是读取矩阵的长度,比如shape[0]就是读取矩阵第一维度的长度,这篇文章主要介绍了Python中的shape[0]、shape[1]和shape[-1]使用方法,需要的朋友可以参考下
    2023-07-07
  • Python中动态创建类实例的方法

    Python中动态创建类实例的方法

    在Java中我们可以通过反射来根据类名创建类实例,那么在Python我们怎么实现类似功能呢?其实在Python有一个builtin函数import,我们可以使用这个函数来在运行时动态加载一些模块
    2017-03-03

最新评论