Python基础学习----文件操作

关注公众号“码农帮派”,查看更多系列技术文章:

 

Python中可以使用:

file(name, [mode, [buffering]] ) -> file object  和  open(name, [ mode, [ buffering ]])来打开文件。

【说明】name是文件的名称,若文件不存在,将会首先创建名称为name的文件,然后打开;mode是文件的打开模式;buffering设置缓存模式,buffering=0表示不缓存,buffering=1表示行缓存,如果buffering大于1,则表示缓存区的大小,单位为字节。

 

文件的打开模式

 

   参数      说明   
     r以只读的方式打开文件
     r+以读写的方式打开文件
     w以写入的方式打开文件,先删除文件原有的内容,再重新写入新的内容,如果文件不存在,则创建一个新的文件。
     w+以读写的方式打开文件,先删除文件原有的内容,再重新写入新的内容,如果文件不存在,则创建一个新的文件。
     a以写入的方式打开文件,在文件的末尾追加新的内容,如果文件不存在,则创建一个新的文件
     a+以读写的方式打开文件,在文件的末尾追加新的内容,如果文件不存在,则创建一个新的文件
     b以二进制的方式打开文件,对于图片,视频文件,必须使用b模式打开
     U支持所有的换行符号

 

使用file()函数或者open()函数,可以打开文件,并获得一个file object对象,file object常用的属性和方法:

 

 

file的常用属性和方法

 

   属性/方法      说明   
   closed判断文件是否关闭,如果文件被关闭返回True
   encoding显示文件的编码类型
   mode显示文件的打开模式
   name显示文件的名称
   newlines显示文件使用的换行模式
   file(name, [mode, [buffering]])以mode模式打开名称为name的文件,如果文件不存在,首先创建文件,buffering表示缓存模式,buffering=0表示不缓存,buffering=1表示行缓存,buffering大于1表示缓存区的大小,单位为字节。
   flush()把缓存区的内容写入到磁盘中
   close()关闭文件
   read([size])从文件中读取size个字节的内容,作为字符串返回
   readline([size])从文件中读取一行作为字符串返回,如果指定size,表示每行每次读取的字节数,依次读完整行的内容
   readlines([size])把文件中的每行存储在列表中返回。如果指定size,表示每次读取的字节数
   seek(offset, [whence])把文件的指针移动到新的位置,offset表示相对于whence的位置,whence用于设置相对位置的起点,whence=0表示从文件开头开始计算,whence=1表示从当前h位置开始计算,whence=2表示从文件的结尾开始计算。如果whence省略,表示从文件的开头开始计算
   tell()返回文件指针当前所在的位置
   next()返回下一行的内容,并将文件的指针移动到下一行
   truncate([size])删除size个字节的内容
   write(str)把字符串的内容写入到文件中
   writelines(seq)把序列的内容依次写入到文件中

 

($)使用write()进行文件内容的写入:

 

content = """Hello World
Python studying"""

f = file("hello.txt", "w")
f.write(content)
f.close()

查看文件目录,可以看到文件系统中出现了hello.txt的文件:

 

查看hello.txt文件的内容,如下:

【说明】可以使用opne()函数代替file()函数。

 

(1)文件的读取

Python中文件的读取主要使用read(), readline()和readlines()函数完成。

(1-1)readline()按行读取

readline()函数每次读取文件中的一行,下面是从文件hello.txt文件中读取每一行,并打印:

 

# coding=utf-8
f = open("hello.txt", 'r')
while True:
    line = f.readline()
    if line:
        print line, # ,号表示不需换行
    else:
        break

f.close()

打印结果:

 

 

/usr/bin/python2.7 /home/mxd/文档/WorkPlace/python/PythonStudy/test.py
Hello World
Python studying

Process finished with exit code 0

 

 

 

(1-2)readlines()多行读取

readlines()函数可以将文件中的内容按行读取出来,放入列表中,并将列表返回:

 

# coding=utf-8
f = open("hello.txt", 'r')
lines = f.readlines()
for line in lines:
    print line,

print type(lines)

 

打印结果:

 

/usr/bin/python2.7 /home/mxd/文档/WorkPlace/python/PythonStudy/test.py
Hello World
Python studying
<type 'list'>

Process finished with exit code 0

 

 

 

(1-3)read()函数一次性读取

read([size])函数一次性将文件内容读取出来,size为读取文件的大小,若size省略,表示全部读取:

 

 
# coding=utf-8 f = open("hello.txt", "r") content = f.read(5) # 读取文件中前5个字节的内容 print content print f.tell() # 打印文件指针当前的位置 f.seek(0) # 将文件指针移动到文件的开头 content = f.read() # 读取文件所有的内容 print content f.close()

 

打印结果:

 

/usr/bin/python2.7 /home/mxd/文档/WorkPlace/python/PythonStudy/test.py
Hello
5
Hello World
Python studying


Process finished with exit code 0

 

 

(2)文件的写入

Python中可以使用write()函数,writelines()函数实现文件内容的写入。

(2-1)write()写入内容到文件中:

 

# coding=utf-8
f = open("hello.txt", 'a+')
content = "hust"
f.write(content)
f.close()

f = open("hello.txt", "r")
content = f.read()
print content
f.close()

打印结果:

 

 

/usr/bin/python2.7 /home/mxd/文档/WorkPlace/python/PythonStudy/test.py
Hello World
Python studying
hust

Process finished with exit code 0

 

 

 

(2-2)writelines()函数可以将列表中的内容,依次写入到文件中去:

 

# coding=utf-8
f = open("hello.txt", "w")
list = ["Hello\t", "World\n", "Hello", "Hust"]
f.writelines(list)
f.close()

f = open("hello.txt", "r")
content = f.read()
print content

打印结果:

 

 

/usr/bin/python2.7 /home/mxd/文档/WorkPlace/python/PythonStudy/test.py
Hello  World
HelloHust

Process finished with exit code 0

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值