zoukankan      html  css  js  c++  java
  • 小白成长之路:初识python(四) -----------python文件相关操作

      上代码:

    #! /usr/bin/env python
    # -*- coding:utf-8 -*-
    ############# python 文件操作总结 #####################

    ##打开文件
    # open(path + filename,model)
    #第一个参数为要打开的文件名,第二个参数为打开的方式
    ## 基本的打开方式
    ## 只读 r 为文件的默认打开方式
    ## 只写 w ,以w方式打开文件的时候会清空文件的内容
    ## 只写 x ,也是只写模式,当文件名不存在时会创建一个文件,如果文件名存在会报错
    ## 追加 a ,也是只写模式,和w模式不同的是不会清空文件的内容,而是在文件的后面追加内容

    ## 以二进制的方式打开文件
    ## 'rb','wb','xb','ab'
    ## 和基本打开方式的r,w,x,a 模式类似,只是在读取的过程中没有经过python解释器的
    ##处理,直接以字节的方式读取,在写入的过程中也要以字节的形式进行写入,否则会报错
    ##普通方式和二进制方式的不同后面会说明

    ## 文件的高级打开方式,可读写 ^ ^
    ## 'r+','w+','x+','a+'
    ## 与基本打开方式不同的是,打开文件的时候可以进行读写操作

    #############################################################

    ## 文件指针相关操作
    ##seek(int) 调整当前文件指针的位置
    ##tell() 获取当前文件指针的位置

    #############################################################

    #读取文件的内容
    ## read() 不写参数默认读取文件中的内容(所有内容),参数为int型数值
    #写入参数的时候,在用普通方式打开文件时,按字符读取(返回的是字符串格式的内容),
    # 再用二进制方式打开时,按字节读取(返回的是其对应编码形式的字节内容)

    ## readline() 按行读取文件内容
    ## readlines() 读取文件所有内容,返回一个列表,列表中的每一个元素为每一行的内容

    ################################################################

    ## write() 向文件中写入数据,在用普通方式打开文件时,用字符串格式的数据向文件
    # 内添加数据,再用二进制方式打开时,以字节的方式写入

    ################################################################

    # close() 关闭文件
    # flush() 把内存内的数据写入磁盘
    # truncate() 根据当前文件指针所在的位置进行截断操作,保留指针位置之前的数据

    ####################################################################

    ############普通方式和二进制方式的不同#############
    # test.txt 文件内的内容是‘我是中国人’
    # f = open('test.txt','r+',encoding='utf-8')
    # data = f.read()
    # print(data)
    # f.close()
    # 执行上述代码的到的结果是 :我是中国人

    # f = open('test.txt','r+b')
    # data = f.read()
    # print(data)
    # f.close()
    # 执行上述代码的得到的结果是:
    # b'xe6x88x91xe6x98xafxe4xb8xadxe5x9bxbdxe4xbaxba'

    ###### 进一步验证两种方式的不同 ##########
    # ret = bytes('我是中国人',encoding='utf-8')
    # print(ret)
    # b'xe6x88x91xe6x98xafxe4xb8xadxe5x9bxbdxe4xbaxba'
    # 和用二进制打开是一样的结果
    ## 结论 :
    # 数据在磁盘中存储的都是用二进制的方式存储的,因为机器只认识0和1
    # 在用普通方式打开文件时python解释器已经为我们自动的把字节转换为我们熟悉的字符形式
    # 而在用二进制方式打开的时候则没有这个过程
    # 在写数据的时候也是一样的道理,就不做验证了

    ####################################################################

    # 貌似上面说那么多也没啥太大用。。。
    ## 在操作文件的过程中,可以用with关键字,这样就不用f.close()操作了
    # with open('test.txt','r+',encoding='utf-8') as f:
    # for line in f:
    # print(line)
    #上述代码也是读取并打印文件每一行的操作,在读不到内容时自动退出并关闭文件

    ####################################################################

    ##在python2.7之后的版本可以同时对两个文件进行操作,格式如下
    # with open(...) as f1,open(...) as f2:
    # for line in f1:
    # f2.write(line)

    ####################################################################








  • 相关阅读:
    单循环判断数组中是否有存在重复值
    【Moss2010系列】利用BCS进行业务数据集成(1)
    状态压缩
    矩阵快速幂
    高精度加法
    旋转treap
    bitset
    快速幂
    splay
    考试注意
  • 原文地址:https://www.cnblogs.com/zxxian/p/7736357.html
Copyright © 2011-2022 走看看