手手要被怪物吃掉了  

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


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++ 中没有 较简单的方法,需要自己写程序来实现
待更新。。

posted on 2017-09-14 22:26  手手要被怪物吃掉了  阅读(258)  评论(0编辑  收藏  举报