python学习记录 — (9)文件I/O

FileIO.py

#coding=utf-8
#################################### 文件I/O ####################################
"""
python提供了File库用于读取和处理文件;
File对象需要通过open方法获取,并通过close方法关闭文件;
"""


##### open(file[,mode[,buffering]])
'''
创建或打开文件,并返回file对象

参数:
    file:文件名称;(字符串)
    mode:打开模式;(字符串)
    buffering:0(不寄存),1(寄存),>1(寄存区的大小),负值(系统默认大小)

mode模式:
    r:读;(不创建)(不覆盖)(指针在头)(默认)
    rb:读(二进制);
    r+:读+写;(不创建)(不覆盖)(指针在头)
    rb+:读+写(二进制);
    w:写;(创建)(覆盖)(指针在头)
    wb:写(二进制);
    w+:写+读;(创建)(覆盖)(指针在头)
    wb+:写+读(二进制);
    a:写;(创建)(不覆盖)(指针在尾)
    ab:写(二进制);
    a+:写+读;(创建)(不覆盖)(指针在尾)
    ab+:写+读(二进制);

返回值: File对象

总结:r的都不自动创建文件,且不覆盖文件;
      w的都会自动创建文件,且覆盖文件;
      a的都会自动创建文件,且不覆盖文件;(指针都在结尾)
'''
fileObj = open("./myfile.txt","w+")

##### file的属性
print "文件名:",fileObj.name                   ## 文件名: ./myfile.txt
print "是否已关闭",fileObj.closed                ## 是否已关闭 False
print "访问模式",fileObj.mode                   ## 访问模式 w+
print "末尾是否强制加空格",fileObj.softspace         ## 末尾是否强制加空格 0

##### file.write(str)
'''
向文件写入字符串
无返回值
'''
fileObj.write("hello python\n")

##### file.writelines(sequence)
'''
向文件写入字符串列表
'''
strList = ["你好 python\n","hello world"," python2.7"]
fileObj.writelines(strList)

##### file.tell()
'''
返回文件的当前指针位置
'''
print "当前指针位置",fileObj.tell()           ## 当前指针位置 50

##### file.seek(offset[,whence])
'''
移动文件的指针位置
参数:offset偏移量
     whence从那个位置开始(0代表开头,1代表当前,2代表末尾)(默认为0)
'''
fileObj.seek(0)
print "当前指针位置",fileObj.tell()           ## 当前指针位置 0

##### file.read([size])
'''
从文件读取指定的字节数(未给定参数或为负,则读取全部)
'''
print "从开头读取了13个字符的字符串为:%s"%fileObj.read(13)        ## 从开头读取了13个字符的字符串为:hello python

##### file.readline([limit])
'''
从文件中读取整行(包括"\n")
参数limit限制了读取的字节数
'''
print fileObj.readline()    ## \n 你好 python \n

##### file.readlines()
'''
从文件中读取所有行,并返回列表
'''
fileObj.seek(0)
lst = fileObj.readlines()
str = ""
for line in lst:
    str = str + line
print str                   ## hello python / 你好 python / hello world python2.7

##### file.next()
'''
返回文件的写一行
'''
fileObj.seek(0)
str = ""
print "当前指针位置:%s"%fileObj.tell()           ## 当前指针位置:0
for i in range(3):
    str = str + fileObj.next()
print(str)                  ## hello python / 你好 python / hello world python2.7

##### file.flush()
'''
刷新文件内部缓冲,直接把缓存立刻写入文件,而非被动等待
'''

##### file.fileno()
'''
返回一个整形的文件描述符,可用于底层操作系统的I/O操作
'''
print "本文件的文件描述符为:%d"%fileObj.fileno()      ## 本文件的文件描述符为:3

##### file.isatty()
'''
检测文件是否连接到一个终端设备
'''
print "是否连接到终端设备:%s"%fileObj.isatty()           ## 是否连接到终端设备:False

##### file.truncate([size])
'''
截断文件
参数:有size,则从开头处截取指定size的字符,剩余的删除
     没有size,则从开头到当前位置的字符保留,剩余的删除
'''
fileObj.seek(17)
fileObj.truncate()
fileObj.seek(0)
str = ''
for line in fileObj.readlines():
    str = str + line
print str                   ## hello python / 你

##### file.close()
'''
关闭文件
'''
fileObj.close()
print "是否已关闭",fileObj.closed            ## 是否已关闭 Tru
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值