Python通过下标获取指定的文件并复制到一个新的文件
需求:rpa流程中,需要通过变量去控制循环获取文件内容,并复制到一个新的文件中。普通的for循环只能在代码中实现循环并且复制到一个新的文件,并不能复制完后跳出代码部分执行流程片段,因此可以通过变量方式,根据获取到文件夹里面文件的列表,通过变量取下标的方式去获取指定文件。
# @ModuleName: demo
# @Author: xzz
# @Time: 2022/11/2 8:23
import os
import shutil
# 待搜索的目录路径
path = r"F:\victory\work\省事熊\深略智慧-智慧催报\downloads\20220805112505\未上报"
file_index = 1
def findfiles(file_path):
global file_index
# 首先遍历当前目录所有文件及文件夹
file_list = os.listdir(file_path)
file_list.sort()
print(file_list)
# 循环判断每个元素是否是文件夹还是文件,是文件夹的话,递归
cur_file = file_list[file_index]
# for file in file_list:
# 利用os.path.join()方法取得路径全名,并存入cur_path变量,否则每次只能遍历一层目录
cur_path = os.path.join(file_path, cur_file)
# 判断是否是文件夹
if os.path.isdir(cur_path):
findfiles(cur_path)
else:
# 判断是否是特定文件名称
file_type = cur_file.split(".")[1]
# 判断是否是xlsx文件
if file_type in ["xlsx", "xls"]:
print("file_type is excle")
# 重新复制文件 temp
shutil.copy(f'{file_path}\\{cur_file}', f'{file_path}\\中间文件.xlsx')
else:
file_index = file_index + 1
findfiles(path)
if __name__ == '__main__':
findfiles(path)
代码片段外层通过变量控制循环即可。