获取某一文件夹下所有文件名的四种方法
2018-07-20 本文已影响161人
seniusen
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