得到一个文件夹中所有文件的名称的几个方法(命令指示符, C++, python)

时间:2023-03-10 05:03:14
得到一个文件夹中所有文件的名称的几个方法(命令指示符, C++, python)

因为最近一直需要获得一个文件下的所有图片的名称,自己又总是跨平台使用,所以把自己在不同环境之下使用的方法总结如下


1.cmd 模式下

优点:简单

例如,我想将一个文件夹下的所有“.jpg” 图像输出到某一个“.txt”文件

运行-cmd-Enter

以下指令即可。其中,两个位置分别为文件夹的目录 以及 目标目录

\b 表示只输出文件名,不包含其他信息。

dir D:\documents\data_valid\8820 /b >D:\documents\data_valid\8820\1_filelist.txt

上述得到的方法会有后缀“.jpg”.如果想不包含后缀,可以用以下方法

去掉文件后缀:

for /f %a in ('dir /b D:\documents\data_valid\8820*.jpg') do echo %~na>>test.txt

如果直接不指定目标目录,又没有进入目标文件夹,这种方法得到的 我的在 c盘--用户-你自己的用户名 下

最好指定一个目录

参考链接: http://jingyan.baidu.com/article/ed15cb1b7220061be36981fa.html


2.python

python中比较简单 ,使用 listdir 即可以得到 文件夹下所有文件名,但是 是一个list, 如果需要保存到 “.txt” 文件的话,可以尝试一下代码

from os import listdir

def getFileList():
SlicePath = 'train1.txt' # the training set
allFileList = listdir('Training')
output1 = open(SlicePath, 'w')
m =len(allFileList)
for i in range(m):
allFileList[i] += '\n' //ubuntu 下为\r\n
try:
output1.writelines(allFileList)
finally:
output1.close() if __name__=='__main__': getFileList()

上述方法在window下得到的 txt 文件中包含后缀。 如果不想包含后缀,python 中自带 split 函数,可以提取出想要的部分。

        fileStr = FileList[i].split('.')[0]
FileList[i] = fileStr + '\r\n'

在ubuntu 下使用时,如果又有可能将txt 文件在windows 下打开时,要使用'\r\n'. 否则,在windows 下打开的txt文件不换行。


3.c++

c++ 中没有 较简单的方法,需要自己写程序来实现

待更新。。