zoukankan      html  css  js  c++  java
  • python学习6

    一、文件基本操作

    f = open("文件路径和文件名", mode=" r", encoding="utf-8" )

    #  open()表示打开一个文件,返回的是一个流,可以理解为操作文件的句柄

    # f 变量 将控制文件的句柄赋值给它

    read()  # 将文件一次性全部读取   弊端:占内存  如果文件过大,容易导致内存崩溃

    read(n)  #  光标处读取n个字符

    readline()  #一次读取一行    !!!注意每次读取出来的数据都会有一个 所以呢. 需要我们使用strip()来去掉 或者空格

    readlines()  # 返回一个列表,元素是每一行的内容   也容易出现内存崩溃问题

    推荐使用循环读取

    for line in f : 

      print(line.strip())

    每次读取一行,不会出现内存溢出的问题

    二、路径问题

    绝对路径:从磁盘根目录开始一直到文件名

    相对路径:相对程序所在文件夹来说的   

    三、文件操作模式 mode

    r  只读               w  只写               a  追加

    rb 读字节          wb 写字节           ab 追加字节

    r+ 读写        w+ 写读    a+ 追加、读    (+号可以理解为功能扩展)

    r+b  读写字节   w+b写读字节      a+b追加、读、字节   

    注意:

    1、这些只是常见的但并不是全部的

    2、常用的是r 、w、r+模式

    3、只要是a或者ab, a+ 都是在文件的末尾写入. 不论光标在任何位置

    4、带b的就是把字符换成字节. 仅此而已

    四、光标操作

    可以把光标理解为定位文件操作起点的标记。不管是读写还是其他操作都要都一个开始的位置,光标的的作用就是告诉程序这个位置。

    seek(n)  #光标移动到n位置  !1!单位是字节

      seek(参数1,参数2)   # 参数1是偏移量,参数2是从什么位置开始偏移  0表示开头,1表示当前位置,2表示末尾

      seek(0)  定位到开头

      seek(0,2)定位到末尾

    tell()  # 获取光标当前位置  单位也是字节

    truncate()   # 截断   删除光标后所有内容

    深坑请注意!!!

    在r+模式下. 如果读取了内容. 不论读取内容多少. 光标显示的是多少. 再写入 或者操作文件的时候都是在结尾进行的操作.

    所以如果想做截断操作. 记住了. 要先挪动光标. 挪动到你想要截断的位置. 然后再进行截断

    关于truncate(n), 如果给出了n. 则从开头进行截断,不管光标在何处, 如果不给n, 则从当前位置截断. 后面的内容将会被删除

    ex:

    小娃娃.txt  内容

    小娃娃想吃冰糖葫芦了
    复制代码
     1 f = open("小娃娃.txt",mode="r+",encoding="utf-8")  #小娃娃想吃冰糖葫芦了
     2 content = f.read(3)  #读取3个字符
     3 print(f.tell())    #9
     4 f.write("买不买")     # 按道理应该在字节9的位置写入,可结果是在最后写入的   小娃娃想吃冰糖葫芦了买不买
     5 print(content)  #小娃娃
     6 f.flush()
     7 f.close()
     8 
     9 
    10 f1 = open("小娃娃.txt",mode="r+",encoding="utf-8")
    11 content = f1.read(3)  #读取3个字符
    12 print(f1.tell())  #9
    13 f1.truncate()  # 按说应该从开头截取的光标9的位置,但结果是从开头截到了结尾
    14 f1.seek(6)
    15 f1.truncate()  #小娃   挪动光标后截取了
    16 f1.flush()
    17 f1.close()
    复制代码

    五、文件修改

    只能将文件中的内容读取到内存中, 将信息修改完毕, 然后将源文件删除, 将新文件的名字改成老文件的名字

    # 文件修改步骤: 从源文件读取 --> 修改-->写入副本-->删除源文件-->重命名副本
    import os
    with open("小娃娃.txt",mode="r",encoding="utf-8") as f1,
    open("小娃娃副本.txt",mode="w",encoding="utf-8") as f2:
    content = f1.read()
    new_content = content.replace("小娃娃","小屁孩儿")
    f2.write(new_content)
    os.remove("小娃娃.txt")
    os.rename("小娃娃副本.txt","小娃娃.txt")
    # 这种写法有弊端, 一次将内容进行读取,容易造成内存溢出,推荐一行一行读取

    with open("小娃娃.txt",mode="r",encoding="utf-8") as f1,
    open("小娃娃副本.txt",mode="w",encoding="utf-8") as f2 :
    for line in f1:
    new_line = line.replace("小娃娃","小屁孩儿")
    f2.write(new_line)

    os.remove("小娃娃.txt")
    os.rename("小娃娃.txt","小娃娃副本.txt")

    文件修改

    一、认识函数

    函数:对动作或者功能的封装

    格式:

    函数声明     def  函数名():

            函数体

    函数调用     函数名()

    复制代码
    1 #定义函数
    2 def xiao():
    3     print("你的笑像一条恶犬")
    4     print("撞乱我心弦")
    5 
    6 # 调用函数
    7 xiao()
    复制代码

    二、函数的返回值

    执行完函数之后. 我们可以使用return来返回结果

    return的作用:

    1、遇到return,函数结束,后面的内容不再执行

    2、返回值。返回给调用方

      如果return后面什么都不写,或干脆不写return,那么默认返回值为None

      如果return后面写一个值,那么返回一个值,调用者可以接收

      如果return后面写了多个值,那么返回一个元组,调用者可以解构成多个变量

    三、函数的参数

    形参:

    在函数声明的时候的参数。形式上的一个完整. 表示这个函数需要xxx

    从形参角度看,参数分为

    1、位置参数 

    在声明时就表明了这个位置是什么值,调用时对应位置上的值将传给它

    2、默认值参数

    在函数声明的时候, 就可以给出函数参数的默认值. 在调用的时候可以给出具体的值, 也可以不给值, 使用默认值.

    3、混合参数       位置+默认值   位置参数要在默认值参数前面

    4、动态传参      *args , **kwargs

    实参:

    在调用函数的时候的参数。表示给函数xxx

    从实参角度看,参数分为

    1、位置参数

    按照位置的顺序分别把实参赋值给形参

    2、关键字参数

    按关键字将实参赋值给形参,不用在乎顺序

    3、混合参数  位置+关键字     注意顺序,必须让位置参数在关键字参数前面

    传参:

    把实参赋值给形参的过程

  • 相关阅读:
    python 基础1-变量名
    Jmeter分布式测试踩过的坑
    Jmeter接口测试踩过的坑
    搭建数据库环境
    char与char的区别
    jmeter性能测试的小小实践
    自动化测试badboy脚本开发(一)
    sql多表查询(单表查询略过)
    认识jmeter
    http与https的区别
  • 原文地址:https://www.cnblogs.com/wuyufeng-9-14/p/10156734.html
Copyright © 2011-2022 走看看