Python办公自动化-获取文件夹下文件的几种方法

本文介绍了Python中获取文件夹下文件名的五种方法,包括使用os模块的walk()函数和listdir()函数,以及路径与文件名的组合方式。每种方法都将文件名存储为列表,并将列表导出到CSV文件。虽然这些方法在单级目录下工作良好,但当遇到子目录时可能会出现问题,建议保持文件夹结构简单,不包含子目录以确保代码简洁易读。
摘要由CSDN通过智能技术生成

在Python办公自动化的时候,经常会对本地文件进行一些操作。

这里介绍几种方法,可以快速获取对应文件夹下的文件,返回一个列表。
然后就可以用列表的切片方式,把列表里的文件名取出来,再进行操作。

方法1:

import os
import pandas as pd
path = r'D:\code\MyProject\百度OCR\IDcard\images'

def findAllFile(base):
    for root, dirs, files in os.walk(base):
        for f in files:
            yield base +'\\'+ f
fa = findAllFile(path)
file_list = []
for i in range(len(os.listdir(path))):
    f = next(fa)
    file_list.append(f)
    #这里的file_list就是存放文件名的列表了。
# 简单的例子,把文件名存储到csv文件中
df = pd.DataFrame(file_list, columns=['file_name'])
df.to_csv('file_list.csv', index=False)

运行之后得到CSV文件,打开后如下:
在这里插入图片描述

方法2

import os
import pandas as pd
path = r'D:\code\MyProject\百度OCR\IDcard\images'

file_list_2 = []
for i in range(len(os.listdir(path))):
    file_list_2.append(os.path.join(path, os.listdir(path)[i]))
    #这里的file_list_2就是存放文件名的列表了。
# 简单的例子,把文件名存储到csv文件中
df = pd.DataFrame(file_list_2, columns=['file_name'])
df.to_csv('file_list2.csv', index=False)

运行之后得到CSV文件,打开后如下:
在这里插入图片描述

方法3

import os
import pandas as pd
path = r'D:\code\MyProject\百度OCR\IDcard\images'

file_name = os.listdir(path)
file_list_3 = []
for i in range(len(file_name)):
    f = path + '\\' + file_name[i]
    file_list_3.append(f)
    #这里的file_list_3就是存放文件名的列表了。
# 简单的例子,把文件名存储到csv文件中
df = pd.DataFrame(file_list_3, columns=['file_name'])
df.to_csv('file_list3.csv', index=False)

作用跟上面的效果一样,不再截图

方法4

file_list_4 = []
for root, dirs, files in os.walk(path):
    for file in files:
        f = path +'\\' + file
        file_list_4.append(f)

df = pd.DataFrame(file_list_4, columns=['file_name'])
df.to_csv('file_list4.csv', index=False)

作用跟上面的效果一样,不再截图

方法5

file_list_5 = []
for root, dirs, files in os.walk(path):
    for file in files:
        file_list_5.append(os.path.join(root, file))

df = pd.DataFrame(file_list_5, columns=['file_name'])
df.to_csv('file_list5.csv', index=False)

作用跟上面的效果一样,不再截图

其中:
1、是用了yield,然后把结果next()出来
2、主要用os.listdir()函数
3、和2原理一样,跟2的区别在于路径+文件名的拼装的方式不一样
4、是用了os.walk()函数
5、是用了os.walk()函数,跟4的区别在于路径+文件名的拼装的方式不一样

写法都比较简单,没什么推荐用法。以后有空可以试试测一下效率。

最后:

以上几种方法可以获取文件夹下面的文件,并把文件名称组成一个列表。
但是,如果images文件夹下还有文件夹,就会出问题。
也有办法去捕获异常或者做一些判断避免这些错误。但是会增加代码复杂度。为了代码的简洁易读,建议就用多个文件夹做物理上的分离:images文件夹只放文件,不要放目录。
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python自动化可以通过编写脚本或程序来实现。具体步骤如下: 1. 确定自动化的目标和需求,例如自动化测试、数据处理、文件操作等。 2. 学习Python编程语言,掌握基本语法和常用模块。 3. 编写Python脚本或程序,实现自动化功能。 4. 调试和测试脚本或程序,确保其正确性和稳定性。 5. 部署脚本或程序,使其能够在需要的时候自动运行。 6. 定期维护和更新脚本或程序,以适应业务需求的变化。 总之,Python自动化需要掌握Python编程技能,并结合具体业务需求进行实现和优化。 ### 回答2: Python自动化可以通过编写脚本或使用自动化工具来实现。 首先,使用脚本是实现Python自动化的一种方式。可以编写Python脚本来完成一系列自动化任务,如文件处理、数据分析、网络请求等。通过在脚本中编写所需的逻辑和操作,可以实现自动化的流程。例如,可以编写一个脚本来自动处理指定文件夹中的所有文件,或者编写一个脚本来自动执行网站的爬取和数据提取。 其次,可以使用自动化工具来实现Python自动化。有许多强大的Python自动化工具可供选择,如Selenium、Pywinauto和Appium等。这些工具提供了各种功能和接口,用于自动化网页测试、窗口应用程序自动化和移动应用程序自动化等任务。通过使用这些工具,可以通过编写Python脚本来控制和操作浏览器、应用程序窗口或移动设备等,实现自动化操作。 不论是使用脚本还是自动化工具,Python自动化实现通常需要掌握以下内容: 1. 熟悉Python编程语言:掌握基本的Python语法和数据类型,了解Python的常用库和模块。 2. 学习自动化工具的使用:如果使用自动化工具,需要先学习该工具的使用方法和API。 3. 编写脚本或程序:根据具体的自动化需求,编写Python脚本或程序来实现自动化操作。 4. 调试和测试:在编写代码时,要进行调试和测试,确保代码的正确性和稳定性。 总之,Python自动化实现可以通过编写脚本或使用自动化工具来完成,需要掌握Python编程和相应工具的使用技巧。 ### 回答3: Python自动化可以通过以下几个步骤来实现: 1. 导入所需的Python库:首先,需要导入所需的Python库,例如selenium用于Web自动化,pyautogui用于图像识别与控制,openpyxl用于Excel自动化等。 2. 编写自动化脚本:根据具体需求,编写Python脚本来实现自动化任务。例如,如果要实现网页自动化,可以使用selenium库来打开网页、填写表单、点击按钮等操作;如果要实现图像识别与控制,可以使用pyautogui库来识别特定图像、移动鼠标、点击屏幕等操作;如果要实现Excel自动化,可以使用openpyxl库来读写Excel文件、操作单元格、创建图表等操作。 3. 运行自动化脚本:将编写好的自动化脚本保存为.py文件,并使用Python解释器运行该文件。运行脚本后,Python会按照脚本中指定的操作自动执行任务。 4. 验证自动化效果:运行脚本后,可以观察自动化任务的执行效果。根据任务的不同,可以通过查看网页是否自动打开、文件是否自动保存、图表是否正确生成等方式来验证自动化效果。 总的来说,Python自动化能够简化许多重复、繁琐的任务,提高工作效率。但在编写自动化脚本时,需要对目标系统和应用程序有一定的了解,以便正确地选择合适的Python库和编写对应的代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值