zoukankan      html  css  js  c++  java
  • 10-Python文件操作

    一、文本文件和二进制文件

    文本文件存储的是普通“字符”文本,python 默认为unicode 字符集(两个字节表示

    一个字符,最多可以表示:65536 个)。

    二进制文件:二进制文件吧数据内容用‘字节’进行存储。记事本无法打开。

    二、文件的几种操作方法及模式

    模式

    描述

    文件不存在

    是否覆盖已有内容

    r

    只读

    报错

    -

    r+

    可读可写

    报错

    w

    只写

    创建

    w+

    可读可写

    创建

    a

    只写

    创建

    否,追加写

    a+

    可读可写

    创建

    否,追加写

    b

    二进制(可与上述并用)

    -

    -

    文本文件的读写

    with open(r"b.txt", 'r') as f:
    
        r = f.read()
    
    print(r)

    运行结果:

    Today it's beautiful,are you agree?

    该函数表示打开一个b.txt文件,并且读写里面的内容进行打印,如果文件不存在则会报错,因为使用了with,因此不需要再使用f.close()关闭文件。如果该文件不存在则会报错,如图所示,test.txt 文件不存在,因此报错。

     

    二进制文件的读写:

    with open(r"图3.jpg", 'rb') as f:
    
        f.read()
    
    print('读取完毕')

    输出结果:

    读取完毕

    输出结果对于二进制文件如果不加入”b”则会报错。如下所示:

     

    实例:

    with open('图3.jpg', 'rb') as f:
    
        with open('tu3.jpg', 'wb') as w:
    
            for line in f.readlines():
    
                w.write(line)
    
            print('copy success')

    该程序表示读写一个名为图3.jpg的文件,然后写入tu3.jpg中。

    文件对象的常用方法:

    方法

    描述

    read(x)

    从文件中读取x个字节或字符的内容返回。若省略x,则读取到文件末尾,即一次读取文件所有内容

    readline()

    从文本文件中读取一行内容

    readlines()

    把文本文件中每一行都作为独立的字符串对象,并将这些对象放入

    列表返回

    write()

    将字符串内容写入文件

    writelines(s)

    将字符串列表s 写入文件文件,不添加换行符

    seek(offset ,whence)

    把文件指针移动到新的位置,offset:开始的偏移量

    whence 不同的值代表不同含义:

    0: 从文件头开始计算(默认值)

    1:从当前位置开始计算

    2:从文件尾开始计算

    tell()

    返回文件指针的当前位置

    truncate([size])

    不论指针在什么位置,只留下指针前size 个字节的内容,其余全

    部删除;

    如果没有传入size,则当指针当前位置到文件末尾内容全部删除。

    flush()

    把缓冲区的内容写入文件,但不关闭文件

    close()

    把缓冲区内容写入文件,同时关闭文件,释放文件对象相关资源

    三、python内置函数

    enumerate()函数

    enumerate()函数用于将一个可遍历的数据对象(如列表、元组和字符串)组合为一个索引序列,同时列出数据和数据下标

    enumerate(object,[start=0])

    object表示一个可以遍历的数据对象,start表示下标开始位置,默认为0

    enumerate()实例1

    a = ['my name is Bob', "I'm from Asia", 'and 18 years pld']
    
    b = enumerate(a)
    
    print(list(b))

    结果:

    [(0, 'my name is Bob'), (1, "I'm from Asia"), (2, 'and 18 years pld')]

    enumerate()实例2:

    bob = ['my name is Bob', "I'm from Asia", 'and 18 years pld']
    
    for a, b in enumerate(bob, start=1):
    
    print(a,b)

    结果:

    1 my name is Bob

    2 I'm from Asia

    3 and 18 years pld

    在上面这个实例中发现了以下操作:

    bob这个列表进行了enuerate操作,得到的结果如实例1,通过for循环进行遍历,第一个数值赋给a,第二个数值赋给b,便得到了最终结果。

  • 相关阅读:
    rocketmq学习(一) rocketmq介绍与安装
    基于redis的分布式锁实现
    SSTI(服务器模板注入)学习
    PHP文件包含漏洞(利用phpinfo)复现
    ubuntu搭建vulhub漏洞环境
    sqli-labs通关教程----51~65关
    sqli-labs通关教程----41~50关
    sqli-labs通关教程----31~40关
    sqli-labs通关教程----21~30关
    sqli-labs通关教程----11~20关
  • 原文地址:https://www.cnblogs.com/clearlie/p/13182516.html
Copyright © 2011-2022 走看看