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\n')
print f.tell()
f.write('test line 2\n')
print f.tell()
f.seek(-13,1)
print f.tell()
f.write('test line 3\n')
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
.\tell.py
.\test.txt
.\walk.py
.\write.py
.\.idea
.\ABC
.\BCD
.\.idea
[]
['misc.xml', 'modules.xml', 'untitled.iml', 'workspace.xml']
.\.idea\misc.xml
.\.idea\modules.xml
.\.idea\untitled.iml
.\.idea\workspace.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:\dir\abc
('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

    

最新文章

  1. 使用SignalR实现消息提醒
  2. 豪斯课堂K先生全套教程淘宝设计美工第一期+第四期教程(无水印)
  3. Swift的期待
  4. MySQL排序原理与MySQL5.6案例分析【转】
  5. 20145225《Java程序设计》 第10周学习总结
  6. HTML5 :b/strong加粗,i/em倾斜区别
  7. jsp页面变量作用域问题
  8. 关于数据库一致改关闭下redo日志文件丢失的处理办法的总结
  9. (转)迎接 Entity Framework 7
  10. brew install nvm
  11. 你应该知道的CSS文字大小单位PX、EM、PT
  12. loadrunner controller:实时查看VUser的运行情况
  13. Python Django CMDB项目实战之-3创建form表单,并在前端页面上展示
  14. XMPP系列(七)---获取群组列表
  15. Lock、ReentrantLock、ReentrantReadWriteLock区别
  16. 阿里云 RDS for MySQL支持什么引擎
  17. docker info 警告"WARNING: No swap limit support"
  18. hive使用python脚本导致java.io.IOException: Broken pipe异常退出
  19. Linux - PS1
  20. js数据结构之栈和队列的详细实现方法

热门文章

  1. Android 显示意图和隐式意图的区别
  2. [转]c# 对密码执行散列和 salt 运算方法
  3. MVC系列学习(十一)-客户端的验证
  4. java中String类为什么要设计成final?
  5. 【转】Java 集合系列08之 List总结(LinkedList, ArrayList等使用场景和性能分析)
  6. [ BZOJ 4318 & 3450 / CodeForces 235 B ] OSU!
  7. Git 分支创建
  8. 从CSDN转到cnblogs了
  9. C# 调用指定打印机 (并不是默认)
  10. 戴尔14G服务器用H740P配置阵列