python 文件对象不仅可以访问普通磁盘文件,也可以访问抽象层面上的文件对象(例如URL地址)
打开文件open() file()功能一致可以任意替代
fp = open('/etc/test.txt', 'r') #以只读方式打开 fp = open('test.txt', 'w') #以写方式打开 fp = open('data.txt', 'r+') #以读写方式打开 fp = open(r'c:io.sys', 'rb') #以二进制只读方式打开
输入:
tp.read(size) #从文件中读取size个字节,默认size是-1表示读取所有内容 tp.readline() #每次只读一行 tp.readlines() #读取指针所在位置后的所有信息
输出:
fp.write('test test')
文件内移动
seek(-12,1) #在当前位置向前移动12个字符 #-12 负号指向前移动 1表示当前位置 0表示文件开始 2表示文件结尾 #使用前需要使用tell()返回当前文件中的位置
#例子
f = open('test.txt','w+') print f.tell() f.write('text line 1 ') print f.tell() f.write('test line 2 ') print f.tell() f.seek(-13,1) print f.tell() f.write('test line 3 ') print f.tell() f.seek(-13,1) print f.tell()
对文件进行操作完后一定要记得关闭文件fp.close()
os.stat 查看文件信息
os.utime 更新时间戳
In [22]: import sys , os #导入sys os模块 In [23]: st = os.stat('test.txt') #查看test.txt文件信息 In [24]: print st #打印文件信息 nt.stat_result(st_mode=33206, st_ino=0L, st_dev=0L, st_nlink=0, st_uid=0, st_gid =0, st_size=26L, st_atime=1497092960L, st_mtime=1497094979L, st_ctime=1497092960 L) In [25]: print 'test.txt的访问时间:%s' % st.st_atime test.txt的访问时间:1497092960.56 In [26]: print 'test.txt的修改时间:%s' % st.st_mtime test.txt的修改时间:1497094979.38 In [27]: os.utime('test.txt',(1330712280,1330712292)) #更新test.txt时间戳
创建临时文件对象
tmpfile()
In [31]: tmpfile = os.tmpfile() #创建一个临时文件对象 In [32]: tmpfile.write('临时文件创建成功了') #在文件中写入一句话
In [33]: tmpfile.seek(0) #将文件指针移到文件开始 In [34]: print tmpfile.read() #读取文件信息 临时文件创建成功了 In [35]: tmpfile.close() #关闭文件
生成一个目录树下的所有文件名
walk()
os.walk()遍历文件和目录
import os for root , dirs , files in os.walk('.',topdown=True): print root print dirs print files for name in files: print(os.path.join(root,name)) for name in dirs: print(os.path.join(root,name))
输出结果:
.
['.idea', 'ABC', 'BCD']
['filename.py', 'log.log', 'tell.py', 'test.txt', 'walk.py', 'write.py']
.filename.py
.log.log
. ell.py
. est.txt
.walk.py
.write.py
..idea
.ABC
.BCD
..idea
[]
['misc.xml', 'modules.xml', 'untitled.iml', 'workspace.xml']
..ideamisc.xml
..ideamodules.xml
..ideauntitled.iml
..ideaworkspace.xml
.ABC
[]
[]
.BCD
[]
[]
Process finished with exit code 0
目录和文件夹
In [1]: import os In [2]: os.getcwd() Out[2]: 'C:\Users\Administrator\PycharmProjects\untitled' In [3]: os.mkdir('BBB') In [4]: os.listdir('.') Out[4]: ['.idea', 'ABC', 'BBB', 'BCD', 'filename.py', 'log.log', 'tell.py', 'test.txt', 'walk.py', 'write.py'] In [5]: os.rmdir('BBB') In [6]: os.chdir('c:/Users/') In [7]: os.getcwd() Out[7]: 'c:\Users'
os.path模块中的路径名访问函数
import os #导入os模块
#去掉目录返回文件名 print os.path.basename('C:/Users/Administrator/PycharmProjects/untitled/walk.py') #去掉文件名,返回路径
print os.path.dirname('C:/Users/Administrator/PycharmProjects/untitled/walk.py') #将各部分拼接成一个路径
print os.path.join('c:\','dir','abc') #返回路径和文件名
print os.path.split('C:/Users/Administrator/PycharmProjects/untitled/walk.py') #返回盘符和文件路径
print os.path.splitdrive('C:/Users/Administrator/PycharmProjects/untitled/walk.py') #返回文件名字和扩展名
print os.path.splitext('C:/Users/Administrator/PycharmProjects/untitled/walk.py')
#返回最近访问时间
print os.path.getatime('C:/Users/Administrator/PycharmProjects/untitled/walk.py')
#返回创建时间
print os.path.getctime('C:/Users/Administrator/PycharmProjects/untitled/walk.py')
#返回修改时间
print os.path.getmtime('C:/Users/Administrator/PycharmProjects/untitled/walk.py')
#返回文件大小(以字节为单位)
print os.path.getsize('C:/Users/Administrator/PycharmProjects/untitled/walk.py')
#判断指定文件或目录是否存在
print os.path.exists('C:/Users/Administrator/PycharmProjects/untitled/walk.py')
#判断指定路径是否为绝对路径
print os.path.isabs('C:/Users/Administrator/PycharmProjects/untitled/walk1.py')
#判断指定路径是否为一个目录
print os.path.isdir('C:/Users/Administrator/PycharmProjects/untitled/')
#判断指定路径是否是文件
print os.path.isfile('C:/Users/Administrator/PycharmProjects/untitled/walk.py')
#判断指定路径是否是一个链接
print os.path.islink('C:/Users/Administrator/PycharmProjects/untitled/walk.py')
#判断指定路径是否是一个挂载点
print os.path.ismount('C:/Users/Administrator/PycharmProjects/untitled/walk.py')
#判断两个路径是否指向同一个文件
print os.path.samefile('C:/Users/Administrator/PycharmProjects/untitled/walk.py','C:/Users/Administrator/PycharmProjects/untitled/walk.py')
输出结果:
walk.py
C:/Users/Administrator/PycharmProjects/untitled
c:dirabc
('C:/Users/Administrator/PycharmProjects/untitled', 'walk.py')
('C:', '/Users/Administrator/PycharmProjects/untitled/walk.py')
('C:/Users/Administrator/PycharmProjects/untitled/walk', '.py')
1497103691.58
1497101112.35
1497103691.58
240
True
True
True
True
False
False