因为最近一直需要获得一个文件下的所有图片的名称,自己又总是跨平台使用,所以把自己在不同环境之下使用的方法总结如下
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++ 中没有 较简单的方法,需要自己写程序来实现
待更新。。