http://hi.baidu.com/jxq61/item/e52aaddb064cb43e49e1dd88
# s 中保存的是函数得到当前工作目录,即当前Python脚本工作的目录路径。
# -* - coding: UTF-8 -* - import os import time #在工作目录下创建一个“2012-08-06_13-20-29”这样的文件夹 folder = time.strftime(r"%Y-%m-%d_%H-%M-%S",time.localtime()) os.makedirs(r'%s/%s'%(os.getcwd(),folder))
print fpath
print fname
显示:
c:\123\456
test.txt
# 事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在
def getDirList( p ): p = str( p ) if p=="": return [ ] p = p.replace( "/","\\") if p[ -1] != "\\": p = p+"\\" a = os.listdir( p ) b = [ x for x in a if os.path.isdir( p + x ) ] return b print getDirList( "C:\\" )结果:
2 获取某指定目录下的所有文件的列表
def getFileList( p ): p = str( p ) if p=="": return [ ] p = p.replace( "/","\\") if p[ -1] != "\\": p = p+"\\" a = os.listdir( p ) b = [ x for x in a if os.path.isfile( p + x ) ] return b print getFileList( "C:\\" )结果:
(2) newFilename 新文件已经存在时,此时,您需要先岀除 newFilename 文件
# -* - coding: UTF-8 -* - # ! /usr/bin/python spath = "D:\\myapps\\python\\HelloWorld.txt" f = open(spath, "w" ) f.write( "First line 1.\n" ) f.writelines( "First line 2." ) f.close() f = open(spath, "r" ) for line in f: print ( "每一行的数据是:%s" % line) f.close() ''' 知识点: 如何读写文件 '''
# -* - coding: UTF-8 -* - # ! /usr/bin/python import os import os.path # os,os.path里包含大多数文件访问的函数,所以要先引入它们. # 请按照你的实际情况修改这个路径 rootdir = "D:\\myapps\\python\\" for parent, dirnames, filenames in os.walk(rootdir): # case 1: for dirname in dirnames: print ( " parent is: " + parent) print ( " dirname is: " + dirname) # case 2 for filename in filenames: print ( " parent is: " + parent) print ( " filename with full path : " + os.path.join(parent, filename)) ''' 知识点: * os.walk返回一个三元组.其中dirnames是所有文件夹名字(不包含路径),filenames是所有文件的名字(不包含路径).parent表示父目录. * case1 演示了如何遍历所有目录. * case2 演示了如何遍历所有文件. * os.path.join(dirname,filename) : 将形如"/a/b/c"和"d.java"变成/a/b/c/d.java". '''
# -* - coding: UTF-8 -* - # ! /usr/bin/python import os.path # 常用函数有三种:分隔路径,找出文件名.找出盘符(windows系统),找出文件的扩展名. # 根据你机器的实际情况修改下面参数. spath = "D:\\myapps\\python\\1.py" # case 1: p,f = os.path.split(spath); print ( " dir is: " + p) print ( " file is: " + f) # case 2: drv,left = os.path.splitdrive(spath); print ( " driver is: " + drv) print ( " left is: " + left) # case 3: f,ext = os.path.splitext(spath); print ( " f is: " + f) print ( " ext is: " + ext) ''' 知识点: 这三个函数都返回二元组. * case1 分隔目录和文件名 * case2 分隔盘符和文件名 * case3 分隔文件和扩展名 '''
# -* - coding: UTF-8 -* - # ! /usr/bin/python import shutil import os import os.path src = "D:\\myapps\\python\\2.py" dst = "D:\\myapps\\python\\2.bak.py" dst2= "D:\\myapps\\2.bak2.py" #判断源文件是否存在,如果不存在则生成一个src测试文件 dir1 = os.path.dirname(src) print ( "dir1 %s " % dir1) if (os.path.exists(src) == False): os.makedirs(dir1) f1 = open(src, "w" ) f1.write( "line a\n" ) f1.write( "line b\n" ) f1.close() #拷贝文件src到dst shutil.copyfile(src, dst) shutil.copyfile(src, dst2) #读取dst f2 = open(dst, "r" ) for line in f2: print (line) f2.close() # 测试复制文件夹树 try : srcDir = "D:\\myapps" dstDir = "D:\\myapps2" # 如果dstDir已经存在,那么shutil.copytree方法会报错! # 这也意味着你不能直接用d:作为目标路径. shutil.copytree(srcDir, dstDir) except Exception as err: print (err) ''' 知识点: * shutil.copyfile:如何复制文件 * os.path.exists:如何判断文件夹是否存在 * shutil.copytree:如何复制目录树 '''