【Python】循环读取一个文件夹中的所有文件,并使用文件名作为其变量名

当我想要循环读取某个文件夹中的所有文件,并使用文件名作为其变量名,以npy文件为例,以下是其Python实现:

import numpy as np
import os  
import glob  

# 指定包含.npy文件的文件夹路径  
folder_path = '/home/test/'  

# 使用glob获取文件夹中所有.npy文件的路径  
npy_files = glob.glob(os.path.join(folder_path, '*.npy'))

# 加载.npy文件并使用文件名作为变量名  
for npy_file in npy_files:  
    variable_name = os.path.splitext(os.path.basename(npy_file))[0]  # 获取文件名并去除扩展名
    globals()[variable_name] = np.load(npy_file)  

如果有多个文件夹,可以加一个外层的循环来遍历文件夹 :

import numpy as np
import os
import glob

# 定义要循环的文件夹路径列表
folder_paths = [
   '/home/test1/',
   '/home/test2/',
   '/home/test3/'
]

# 循环遍历每个文件夹
for folder_path in folder_paths:
   # 使用glob获取文件夹中所有.npy文件的路径
   npy_files = glob.glob(os.path.join(folder_path, '*.npy'))

   # 加载.npy文件并使用文件名作为变量名
   for npy_file in npy_files:
       variable_name = os.path.splitext(os.path.basename(npy_file))[0]  # 获取文件名并去除扩展名
       globals()[variable_name] = np.load(npy_file)

如果还想匹配多种文件后缀,还可以在glob.glob的参数中使用通配符,比如*,来匹配多种文件后缀:

import glob
import os

# 定义要循环的文件夹路径列表
folder_paths = [
    '/home/test/',
]

# 定义要匹配的多个后缀
allowed_suffixes = ['*.npy', '*.txt', '*.csv']  # 你可以添加其他后缀

# 循环遍历每个文件夹
for folder_path in folder_paths:
    # 使用glob获取文件夹中所有符合后缀的文件的路径
    files = []
    for suffix in allowed_suffixes:
        files.extend(glob.glob(os.path.join(folder_path, suffix)))

    # 加载文件并使用文件名作为变量名
    for f in files:
        variable_name = os.path.splitext(os.path.basename(f))[0]
        globals()[variable_name] = np.load(f)
        print(variable_name)
  • 16
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值