从零开始学Python

第十一章:文件操作

1.打开文件

  用open函数,直接用就可以。

  open(name[,mode[,buffering]])

 调用open之后会返回一个文件对象,mode--模式,buffering--缓冲都是可以选择的。

>>f=open(r文件路径)

2.文件模式:

   r  读模式

   w  写模式

   a  追加模式

   b  二进制模式(可以添加到其他模式中)

   +  读/写模式(可以添加到其他模式中)

处理其他二进制文件时,要用b模式

3.缓冲:

  如果参数是0(或者False),无缓冲,读写直接针对硬盘,如果是1,有缓冲,直接用内存代替硬盘。

读和写:

  >>f=open(文件路径,w)

  >>f.write(hello)

  >>f.write(world)

  >>f.close()

  >>f=open(文件路径)

  >>f.read(4)

输出:hell

  >>f.read()

输出:oworld

首先读取了4之后,读取文件的指针就改变了,不再是从开始读。

注意在写操作完成后,要调用close()

4.读写行:

  使用file.readline()读取一行,包括换行符,带参数的时候会读取这行的多少字节数。

  使用file.readlines()可以读取整个文件的所有行,并作为列表返回。

5.上下文管理器

   是一种支持__enter____exit__方法的对象,前者在进入with的语句时调用,返回值在as之后,后者带有三个参数,异常类型,异常对象,异常回溯。

6.基本的文件方法:

   read(),readline(),readlines(),write()

Read():

  >>f=open(文件路径)

  >>print(f.read())

Readline():

  >>f=open(文件路径)

  >>for i in range(3):

  >>  print(f.readline())

会打印出前三行

Readlines():

  >>import pprint

  >>pprint.pprint(f.readlines())

Write():

  >>f=open(文件路径)

  >>f.write(hello)

Writelines():

  >>f=open(文件路径)

  >>lines=f.readlines()

  >>f.close()

  >>f.open(文件路径)

  >>f=writelines(lines)

  >>f.close()

7.对文件内容进行迭代

   按字节处理:

    >>f=open(文件路径)

    >>char=f.read(1)

    >>while char:

>>print(char)

    char=f.read(1)

    >>f.close()

   按行操作:

    >>f=open(文件路径)

    >>while True:

>>line=f.readline()

    if not line:break

    print(line)

    >>f.close()

   读取所有内容:

    >>f=open(文件路径)

    >>for line in f.readlines():

print(line)

    >>f.close()

8.fileinput实现迭代

    >>import fileinput

\    >>for line in fileinput.input(文件路径):

print(line)

    >>f.close()

9.文件迭代器

   文件的对象是可以迭代的!!

    >>f=open(文件路径)

    >>for line in f:

print(char)

    >>f.close()

迭代文件,可以使用其他的迭代语句。

10.字符串列表

    >>f=open(文件路径w)

>>f.write(1 line\n)

>>f.write(2 line\n)

>>f.write(3 line\n)

>>f.close()

>>lines=list(open(文件路径))

>>lines

输出:[1 line,2 line,3 line]

>>first,second,third=open(文件路径)

>>first

输出:1 line

>>second

输出:2 line

>>third

输出:2 line

 

<!--EndFragment-->

你可能感兴趣的:(python)