博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 002 文件输入输出
阅读量:4512 次
发布时间:2019-06-08

本文共 4684 字,大约阅读时间需要 15 分钟。

  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=1497092960L)In [25]: print 'test.txt的访问时间:%s' % st.st_atimetest.txt的访问时间:1497092960.56In [26]: print 'test.txt的修改时间:%s' % st.st_mtimetest.txt的修改时间:1497094979.38In [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 osfor 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 osIn [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

 

 

    

posted on
2017-06-10 20:14 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/EWWE/p/6979787.html

你可能感兴趣的文章
染色(bzoj 2243)
查看>>
理解托管磁盘的原理与优势
查看>>
[原创]python之简单计算器(超详解,只有基本功能+-*/,还有括号处理)
查看>>
python 多进程简单调用
查看>>
APP压力稳定性测试
查看>>
Windows文件操作基础代码
查看>>
1-8
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_04-集合_04 数据结构_2_数据结构_队列
查看>>
Entity Framework操作Oracle数据库实现主键自增问题
查看>>
Leetcode WC-108-03 931-下降路径最小和
查看>>
从“智猪博弈”看所谓“大国责任”
查看>>
Day3:Spring-JDBC、事务管理
查看>>
模块的四种形式
查看>>
教你如何培养幽默感
查看>>
asp.net的一个简单简历缓存方法
查看>>
loj 1185(bfs)
查看>>
全排列-按从大到小-time limited
查看>>
减肥中,做个 体重三围 测量软件
查看>>
windows下命令行修改系统时间;修改系统时间的软件
查看>>
[LeetCode] 384. Shuffle an Array 数组洗牌
查看>>