X-man

导航

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)

 

posted on 2016-01-07 17:57  雨钝风轻  阅读(538)  评论(0编辑  收藏  举报