Python—文件

###python的文件###

 

1.文件的操作步骤:  打开   操作   关闭

 

2.操作文件的关键字

 x:

    -写模式,新建一个文件

    -如果该文件已经存在,会报错

 r:

    -只能读,不能写

    -并将文件指针指向文件头

    -读取的文件如果不存在,会报错

 r+:

    -即能写,也能读

    -并将文件指针指向文件头

    -如果文件不存在的话,会报错

 

 w:

    -只能写,不能读

    -并将文件指针指向文件头

    -写的话会覆盖源文件内容

    -如果文件不存在,会新建文件

 w+:

    -不能读取文件

    -写的话会覆盖源文件内容

    -如果文件不存在,会创建文件并写入内容

 a:

    -只能写,不能读,读的话会清空文件内容

    -文件指针会放在文件的末尾

    -文件不存在的时候,会新建文件并写入,不会报错

    -文件存在,写在源文件后面,不会清空文件内容

 a+:

    -只能写,不能读

    -默认添加文件最后

    -文件不存在,新建

 

示例:

#打开

f = open('passwd')   #后面什么都不加,默认是 'r' 只读操作

#操作

print f.read()

f.write('westos')   #因为是只读操作,所以不能写入,编译会报错

 

# print f.read()

 

#关闭  记住一定要关闭文件,否则会占用内存

f.close()

 

 

3.文件指针

 

问题:文件指针标记从哪个位置开始读取数据?

   第一次打开文件时,通常文件指针会指向文件的开始位置

   当执行了read方法后,文件指针会移动到读取内容的末尾

 

file = open('passwd') ##打开名为‘passwd’的文件

a = file.read()

print a              ##输出读取的文件的内容

print type(a)      ##输出a的类型  是字符串类型

print len(a)      ##a输出的文件的长度

print '********'     ##这个读取万文件后,指针停留在文件末尾

file.seek(0)         ##恢复指针位置到文件最开始的位置

b = file.read()      ##再次读取就会从头开始,如果没有file.seek

print len(b)         ##这行代码的输出值是0

file.close()         ##记住一定要关闭文件,否则会占用内存

 

 

4.正确读取大文件

 

#正确读取大文件

file = open('passwd')

#为什么要设定为无限循环

#因为我们不知道循环的条件

#我们不知道文件到底有多少行

while True:

    text = file.readline()   ##读取一行

    #判断是否读取到了文件内容

    #如果文件指针到文件最后一行,那么就读取不到内容

    if not text:

        break

    print text

file.close()

 

 

5.练习

 

1)要求:

打开一个已经有的文件,读取完整的内容,并写到另一个文件中去

 

#源文件以只读的方式打开

file_read = open('passwd')

file_copy = open('file_copy','w')

 

#从源文件中读取内容

a = file_read.read()

file_copy.write(a)

 

#关闭文件

file_read.close()

file_copy.close()

 

2)创建文件data.txt,文件一共100行,每行存放一个1~100之间的整数

 

import random

f = open('data.txt','w+')

for i in range(10):

    a = random.randint(1,100)

    f.write('%d\n'%a)

f.close()

 

 

6.读取二进制文件

 

读取二进制文件的时候

rb wb ab

rb+ wb+ ab+

 

#读取二进制文件的内容

f1 = open('good.jpg',mode='rb')

a = f1.read()

f1.close()

 

f2 = open('李钟硕.png',mode='wb')

f2.write(a)

f2.close()

 

注意:读取二进制文件的前提是,当前路径下存在二进制文件(照片),如果没有的话,可以从网上下载一个,然后移动到当前路径下,才可以使用

 

posted @ 2018-09-20 23:21  wf-aiyouwei  阅读(277)  评论(0编辑  收藏  举报