python 处理文件夹中的文件(新建另一个文件保存),listdir顺序输出
1.原始文件
要求文件:
# -*- coding:utf8 -*- import os def splitSentence(inputFile,name): fin = open(inputFile, 'r') #以读的方式打开文件 print name fout= open('/home/xdj/abstract1/'+name,'w') #以写得方式打开文件 for eachLine in fin: if 'abstract=' in eachLine: fout.write(eachLine) #将分词好的结果写入到输出文件 fin.close() fout.close() path='/home/xdj/abstract' fns=[os.path.join(root,fn) for root,dirs,files in os.walk(path) for fn in files] i=-1; for f in fns: i=i+1 splitSentence(f,files[i])
root为'/home/xdj/abstract'
dirs为空
files为'abstract'中文件
# -*- coding:utf8 -*- import operator from os import listdir import os fileList=os.listdir('/home/xdj/abstract') fileList.sort() print fileList
['2007.BibTeX', '2008.BibTeX', '2009.BibTeX', '2010.BibTeX', '2011.BibTeX', '2012.BibTeX', '2013.BibTeX', '2014.BibTeX', '2015.BibTeX']
在sort()之前
['2012.BibTeX', '2013.BibTeX', '2008.BibTeX', '2009.BibTeX', '2014.BibTeX', '2010.BibTeX', '2007.BibTeX', '2011.BibTeX', '2015.BibTeX']
################33
sort()是从左往右依次匹配,并不是简单比较大小
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
文件夹递归遍历。
**用split切割字符串时,需要注意“//”,转义字符的使用
这也是为什么写地址是是‘//’,而不是‘/’
# -*- coding: utf-8 -*- import os def gci(filepath): #遍历filepath下所有文件,包括子目录 files = os.listdir(filepath) for fi in files: fi_d = os.path.join(filepath,fi) if os.path.isdir(fi_d): gci(fi_d) else: print os.path.join(filepath,fi_d) #递归遍历/root目录下所有文件 root = 'F:\\目标2' root = root.decode('utf-8') gci(root)