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

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


1.cmd 模式下
优点:简单
例如,我想将一个文件夹下的所有“.jpg” 图像输出到某一个“.txt”文件

运行-cmd-Enter
以下指令即可。其中,两个位置分别为文件夹的目录 以及 目标目录
 表示只输出文件名,不包含其他信息。

dir D:documentsdata_valid8820 /b >D:documentsdata_valid88201_filelist.txt

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

去掉文件后缀:
for /f %a in ('dir /b D:documentsdata_valid8820*.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] += '
'  //ubuntu 下为
             
    try:
        output1.writelines(allFileList)
    finally:
        output1.close()
         
if __name__=='__main__':

    getFileList()   

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

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

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


3.c++
c++ 中没有 较简单的方法,需要自己写程序来实现
待更新。。

原文地址:https://www.cnblogs.com/lifeofershisui/p/7521932.html