zoukankan      html  css  js  c++  java
  • 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 '%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()

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

  • 相关阅读:
    全选、全不选、反选
    IE Tester 怎样使用firebug 调试工具?
    策略模式
    模板方法模式
    迭代器模式——android中使用
    android 实现圆形波纹动画
    android 窗口的使用
    AlertDialog 基本使用
    国外android 网站
    ViewDragHelper 任意拖动
  • 原文地址:https://www.cnblogs.com/wf-aiyouwei/p/9683979.html
Copyright © 2011-2022 走看看