• python基础之文件操作,函数


    文件操作

    +模式: r+t  w+t  a+t  r+b   w+b  a+b 

             可读可写,其他功能与人,r,w,a相同

    f.seek(offset,whence) 文件指针移动    offest的单位为bytes   whence是参照物

    f.seek(3,0)  whence默认值为0   0:文件开头开始  1:当前指针位置  2:参照末尾

    强调:其中whence = 1 和 whence = 2 只能在b模式下使用,除非offest =0 是都可以

               f.seek(-2,2)当whence = 2 时,offset需要用负数表示

    f.tell()每次统计都是从文件开头到当前指针所在位置

    注:只有在t模式下的read(n),n才代表字符的个数,除此之外其他但凡涉及到文件指针的都已bytes为单位

    f.truncate(9) 固定参照文件开头,9代表9bytes

    修改文件:

    方法一:先将原文件内容一次性读入内存,在内存修改完成后覆盖写回原文件

             缺点:文件过大的情况下会占用过多的内存空间

             优点:修改期间文件内容始终只有一份

    with open('a.txt') as read_f:
    data=read_f.read()    
    data=data.replace('alex','SB') 
    with open('a.txt') as write_f:
        write_f.write(data) 
    

    方法二:以读的方式打开原文件,写的方式打开新文件,从原文件中循环读取每一行内容,         修改后写入新文件,然后删除原文件,把新文件名命名为原来的文件名

             缺点:修改期间文件内容有两份

             优点:内存中同一时间只有一行内容

    import os
    with open('a.txt') as read_f,open('.a.txt.swap','w') as write_f:
        for line in read_f:
            line=line.replace('alex','SB')
            write_f.write(line)
    os.remove('a.txt')
    os.rename('.a.txt.swap','a.txt')
    

    函数的应用

    1.什么是函数?

             在程序中,函数就是具备某一功能的工具,函数的使用必须遵循先定义,后调用的原则

    2.为何使用函数?

             不用函数的问题:

                      ①.程序冗长

                      ②.扩展性差

                      ③.可读性差

    3.如何使用:先定义后使用

             def 函数名(参数,参数……):

                      ‘’’

                      功能描述

                      参数描述

                      return:返回值描述

                      ‘’’

                      代码块

                      return 返回值

    4.定义:

             没有定义而直接引用的函数名,相当于引用一个不存在的变量名

             ①函数的定义阶段:不执行函数体代码,但会检测函数体的语法

             ②调用阶段:执行函数体代码

    参数:函数体接收外部值的一个媒介

    函数定义的三种形式:

    1.无参数函数:在定义阶段,括号内没有参数

             注意:定义时无参,意味着调用时也无需传入参数

             应用:如果函数体代码逻辑不需要外部传参值时,用无参数函数

    2.有参数函数:在函数定义时,括号内有参数

             注意:定义时有参,意味着调用时也需要传参

             应用:如果函数体代码逻辑需要外部传参值时,需要有参数函数

    3.空函数:

             def func():

                      pass

             用于结构的构建,先搭好结构,后期再填代码

  • 相关阅读:
    iOS- storyboard this class is not key value coding-compliant for the key xxx
    iOS-iOS 获取蓝色文件夹图片
    新浪微博客户端(45)-显示表情
    新浪微博客户端(44)-分页表情键盘
    iOS-设置UIPageControl 显示图片
    codeforces736D. Permutations(线性代数)
    POJ2505 A multiplication game(博弈)
    BZOJ3073: [Pa2011]Journeys(线段树优化建图 Dijkstra)
    SPOJ KATHTHI
    洛谷P2827 蚯蚓(单调队列)
  • 原文地址:https://www.cnblogs.com/luck-L/p/9139679.html
Copyright © 2020-2023  润新知