• 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()

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

  • 相关阅读:
    陶瓷电容的结构、工艺、失效模式
    Vue.js最佳实践
    Vue 超快速学习
    CSS 小技巧
    HTML5 Canvas
    webkit下面的CSS设置滚动条
    Some untracked working tree files would be overwritten by checkout. Please move or remove them before you can checkout. View them
    JSCS: Please specify path to 'JSCS' package
    React中ref的使用方法
    React 60S倒计时
  • 原文地址:https://www.cnblogs.com/wf-aiyouwei/p/9683979.html
Copyright © 2020-2023  润新知