获取某一文件夹下所有文件名的四种方法

1. Ubuntu 下用 Shell 生成文件名到 TXT 中,然后再读入到程序中

#!/bin/bash
path=/home/senius/traindata/
cd ${path}
for file in $(ls *)
do
    echo ${path}$file >> filename.txt
done
  • 将 path 更改为需要的路径后运行,即可在该路径下得到一个名为 filename.txt 的文件。
import numpy as np
txtdatapath = '/home/senius/traindata/'
filename = np.genfromtxt(txtdatapath + 'filename.txt', dtype='str') # type:numpy.array
  • 然后再通过 Numpy 读入 TXT 到数组中。

2. Windows 下用命令行生成文件名到 TXT 中,然后再读入到程序中

  • 打开 Windows 命令行管理器
cd path
dir /b/s >filename.txt
  • 运行以上命令,即可在该路径下得到一个名为 filename.txt 的文件,读入方法同上。此命令生成的文件中会包括 filename.txt 本身,需要注意!

3. 利用 Python 的 os 模块函数 os.listdir()

import os
path = '/home/senius/Downloads/BSD68/'
os.chdir(path)
filenames = os.listdir()
for i in range(len(filename)):
    filenames[i] = path + filenames[i]
    
filenames = sorted(filenames) # sort the filenames in dictionary order
# type:list

以上三种方法只适用于文件夹下面只有文件没有子文件夹,下面的第四种方法无此限制!

4. 利用 Python 的 os 模块函数 os.walk()

import os
path = '/home/senius/Downloads/BSD68/'
filenames = []
# 递归返回根目录名、根目录下的目录名和根目录下的文件名
for root, dirs, files in os.walk(path):
    for filename in files:
        filenames.append(os.path.join(root, filename))
    
filenames = sorted(filenames) # sort the filenames in dictionary order
# type:list

获取更多精彩,请关注「seniusen」!

《获取某一文件夹下所有文件名的四种方法》 seniusen

    原文作者:seniusen
    原文地址: https://www.jianshu.com/p/b5abee83d7a2
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞