python对文件夹的操作汇总,方便查阅使用
1、遍历指定目录,显示目录下的所有文件名
#-*- coding:utf-8 -*-
import os
def fileInFolder(filepath):
pathDir = os.listdir(filepath) # 获取filepath文件夹下的所有的文件
files = []
for allDir in pathDir:
child = os.path.join('%s\%s' % (filepath, allDir))
files.append(child.decode('gbk')) # .decode('gbk')是解决中文显示乱码问题
# print child
# if os.path.isdir(child):
# print child
# simplepath = os.path.split(child)
# print simplepath
return files
filepath = "C:\files"
print fileInFolder(filepath)
输出:
[u'C:\files\a.txt', u'C:\files\b.txt', u'C:\files\c']
2、遍历文件夹及其子文件夹的所有文件,获取文件的列表
#-*- coding:utf-8 -*-
import os
def getfilelist(filepath):
filelist = os.listdir(filepath) # 获取filepath文件夹下的所有的文件
files = []
for i in range(len(filelist)):
child = os.path.join('%s\%s' % (filepath, filelist[i]))
if os.path.isdir(child):
files.extend(getfilelist(child))
else:
files.append(child)
return files
filepath = "C:\files"
print getfilelist(filepath)
输出:
['C:\files\a.txt', 'C:\files\b.txt', 'C:\files\c\d.txt', 'C:\files\c\e.txt', 'C:\files\c\f\g.txt']
3、Python 遍历子文件和所有子文件夹 输出字符串
参考: http://blog.csdn.net/Qian_F/article/details/9896283
#-*- coding:utf-8 -*-
import os
def getfilelist(filepath, tabnum=1):
simplepath = os.path.split(filepath)[1]
returnstr = simplepath+"目录<>"+"
"
returndirstr = ""
returnfilestr = ""
filelist = os.listdir(filepath)
for num in range(len(filelist)):
filename=filelist[num]
if os.path.isdir(filepath+"/"+filename):
returndirstr += " "*tabnum+getfilelist(filepath+"/"+filename, tabnum+1)
else:
returnfilestr += " "*tabnum+filename+"
"
returnstr += returnfilestr+returndirstr
return returnstr+" "*tabnum+"</>
"
filepath = "C:\files"
f = open("test.xml","w+")
f.writelines(getfilelist(filepath))
f.close()
4、对文件批量更名
#-*- coding:utf-8 -*-
import os
def filesRename(filepath):
filelist = os.listdir(filepath) # 获取filepath文件夹下的所有的文件
files = []
for i in range(len(filelist)):
child = os.path.join('%s\%s' % (filepath, filelist[i]))
if os.path.isdir(child):
continue
else:
newName = os.path.join('%s\%s' % (filepath, str(i) + "_" + filelist[i]))
print newName
os.rename(child, newName)
filepath = "C:\files2"
filesRename(filepath)