当前位置:  编程技术>python

Python 文件和输入输出小结

    来源: 互联网  发布时间:2014-09-04

    本文导语:  1.打开和关闭文件(open(),file(),close()) 有两种内建函数可以获取文件对象:open和file。他们的用法完全一样。下面只以open()为例子讲解。获取一个文件对象(打开文件)的语法如下:        代码如下:fileObj = open(filename,acces...

1.打开和关闭文件(open(),file(),close())

有两种内建函数可以获取文件对象:open和file。他们的用法完全一样。下面只以open()为例子讲解。获取一个文件对象(打开文件)的语法如下:       

代码如下:
fileObj = open(filename,access_mode='r',buffering=-1) 

filename不用说你也应该知道是你要打开文件的路径。
access_mode用来标识文件打开的模式,默认为r(只读)。

常用的模式如下表所示:

文件模式 解释 r 以只读方式打开 w 以写方式打开,文件不为空时清空文件;文件不存在时新建文件。 a 追加模式,没有则创建 r+,w+,a+ 以读写模式打开,参见w,a
另外还有一个b表示二进制模式访问,但是对于Linux或者unix系统来说这个模式没有任何意义,因为他们把所有文件都看作二进制文件,包括文本文件。


第三个参数不经常用到,标识访问文件的缓冲方式,0代表不缓冲,1代表缓
冲一行,-1代表使用系统默认缓冲方式。只要使用系统默认就好。

一些例子:

代码如下:

>>> f = open('/etc/passwd','r')
>>> f1 = open('/etc/test','w')

使用完文件后,一定要记得关闭文件,操作如下:

代码如下:

>>> f.close()

2.文件读入

2.1.file.read(size = -1)
    读取从当前文件游标起size个字节的文件内容。如果size=-1,则读取所有剩余字节。

代码如下:

>>> f = open('/etc/passwd')
>>> f.read(100)
'root:x:0:0:root:/root:/bin/bashnbin:x:1:1:bin:/bin:/sbin/nologinndaemon:x:2:2:daemon:/sbin:/sbin/nol'

2.2.file.readlines(size=-1)

    从文件中读取并返回一行(包括行结束符),或返回最大size个字符

代码如下:

>>> f.readline()
'oginn'#和上面一个例子输出的最后拼起来就是  'nologin',因为游标在l后面。
>>> f.readline(1)
'a'

2.3.file.readlines(sizhint=0)
    读取文件所有的行,并作为一个列表返回(包括行结束符),如果sizhint>0则返回总和大约sizhint字节的行(具体由缓冲区大小决定)。

代码如下:

f.readlines()
['dm:x:3:4:adm:/var/adm:/sbin/nologinn', 'lp:x:4:7:lp:/var/spool/lpd:/sbin/nologinn', 'sync:x:5:0:sync:/sbin:/bin/syncn', 'shutdown:x:6:0:shutdown:/sbin:/sbin/shutdownn', 'halt:x:7:0:halt:/sbin:/sbin/haltn', 'mail:x:8:12:mail:/var/spool/mail:/sbin/nologinn', ......

输出省略。

3.文件输出

3.1.file.write(str)
    向文件中写入指定的字符串。

代码如下:

>>> f = file('/root/test.py','w+')
>>> f.write("print 'hello,world'")
>>> f.read()
''
>>> f.close()
>>> file('/root/test.py','r').read()
"print 'hello,world'"

3.2.file.write(seq)

    向文件写入字符串序列seq。seq是任何返回字符串的可迭代对象。

代码如下:

>>> f = file('/root/test.py','a+')
>>> codelst = ['n','import osn',"os.popen('ls').read()n"]
>>> f.writelines(codelst)
>>> f.close()
>>> file('/root/test.py','r').read()
"print 'hello,world'nimport osnos.popen('ls').read()n"

注意,文件写入的时候,不会自动加上换行符,必须手动加上。

4.文件移动

    学过C语言的同学,一定对fseek()函数不陌生,在Python中,seek()方法是fseek()的替代者。

    seek(offset,whence=0)
    方法可以将文件游标移动到文件的任意位置。其中offset代表需要移动的偏移字节数,whence表示要从哪个位置开始偏移:
    0代表从文件开头开始算起,
    1代表从当前位置开始算起,
    2代表从文件末尾算起。

    那我们如何知道当前文件游标在哪里呢?别担心,这里有个tell()方法可以返回当前文件游标的位置。

5.文件迭代

    在Python中,文件不仅仅是一个对象,而且是一个可迭代对象!我们可以利用如下迭代方式,轻松的访问和处理文件内容,而不必全部读出(readlines)后再迭代(性能上差了很多哦!)

代码如下:

for eachline in f:
    #dealwith eachline of f

例如:

代码如下:

>>> for eachline in f:
...     print eachline

6.os、os.path与文件

os和os.path中提供了一些跟文件有关的接口,下面介绍一些常用的接口。其他接口可以自己查阅相关文档。

注意:以下函数传入的参数都是字符串形式的文件名字,文件名可由文件对象的name属性获得。

函数 描述 os.path.basename() 去掉目录路径,返回文件名 os.path.dirname() 去掉文件名,返回目录路径 os.path.getatime()
os.path.getctime()
os.path.getmtime()
os.path.size() 返回文件的atime,ctime,mtime和大小 os.path.exists() 该文件或目录是否存在 os.path.abs() 指定路径是否为绝对路径 os.path.isdir() 路径是否存在且为目录 os.path.isfile() 路径是否存在且为文件。 os.path.islink() 指定路径是否存在且为一个符号链接
代码如下:

>>> import os.path
>>> f = open('/root/test.py','r')
>>> os.path.basename(f.name)
'test.py'
>>> f.name
'/root/test.py'
>>> os.path.getsize(f.name)
52
>>> os.path.isabs(f.name)
True
>>> os.path.isdir(f.name)
False

    
 
 

您可能感兴趣的文章:

  • python中的一些类型转换函数小结
  • Python yield 小结和实例
  • 小结Python用fork来创建子进程注意事项
  • python中的__init__ 、__new__、__call__小结
  • Python 时间操作例子和时间格式化参数小结
  • Python常用列表数据结构小结
  • 9种python web 程序的部署方式小结
  • Python中的jquery PyQuery库使用小结
  • python文件和目录操作函数小结
  • Python运行的17个时新手常见错误小结
  • Python入门及进阶笔记 Python 内置函数小结
  • python 文件和路径操作函数小结
  • python文件和目录操作函数小结 iis7站长之家
  • Python语言的12个基础知识点小结
  • Python Web服务器Tornado使用小结
  • Python不使用print而直接输出二进制字符串
  • python中精确输出JSON浮点数的方法
  • python异常信息堆栈输出到日志文件
  • Python ljust rjust center输出
  • python字符串格式化输出及相关操作代码举例
  • python 输出一个两行字符的变量
  • go和python调用其它程序并得到程序输出
  • python中stdout输出不缓存的设置方法
  • linux系统使用python监测网络接口获取网络的输入输出
  • python在linux中输出带颜色的文字的方法
  • 用Python输出一个杨辉三角的例子
  • python基础教程之popen函数操作其它程序的输入和输出示例
  • Python3基础之输入和输出实例分析
  • python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Python 命令行非阻塞输入的小例子
  • Python采用raw_input读取输入值的方法
  • Python GUI编程:tkinter实现一个窗口并居中代码
  • 让python同时兼容python2和python3的8个技巧分享
  • Python中实现json字符串和dict类型的互转
  • 使用setup.py安装python包和卸载python包的方法
  • python下用os.execl执行centos下的系统时间同步命令ntpdate
  • 不小心把linux自带的python卸载了,导致安装一个依赖原python的软件不能安装,请问该怎么办?
  • Python namedtuple对象json序列化/反序列化及对象恢复
  • python读取csv文件示例(python操作csv)
  • Python获取网页编码的方法及示例代码
  • python基础教程之python消息摘要算法使用示例
  • Python异常模块traceback用法举例
  • 新手该如何学python怎么学好python?
  • python之平台独立的调试工具winpdb介绍
  • 使用python删除nginx缓存文件示例(python文件操作)
  • 基于Python的Html/xml解析库Beautiful Soup 4.2.1发布
  • python学习手册中的python多态示例代码
  • 测试Python内部类型及type和isinstance用法区别
  • 请教:system("C:\python2.4\python.exe C:\aa.py");该语句有何错误?为什么运行界面一闪就消失了并且没有运行完,请给出正确语句!
  • Python3中内置类型bytes和str用法及byte和string之间各种编码转换
  • python版本的问题
  • Python namedtuple(命名元组)使用实例
  • Mac OS X10.9安装的Python2.7升级Python3.3步骤详解


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3