zoukankan      html  css  js  c++  java
  • day3 文件操作

    一.文件操作

    1.文件基本的读取操作

    f = open('chenli.txt') #打开文件
    first_line = f.readline()
    print('first line:',first_line) #读一行
    print('我是分隔线'.center(50,'-'))
    data = f.read()# 读取剩下的所有内容,文件大时不要用
    print(data) #打印读取内容
     
    f.close() #关闭文件

    2.文件打开基本的读写追加 参数

    • r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】
    • w,只写模式【不可读;不存在则创建;存在则清空内容】
    • x, 只写模式【不可读;不存在则创建,存在则报错】
    • a, 追加模式【可读;   不存在则创建;存在则只追加内个文件

    "+" 表示可以同时读写某个文件

     

       

    • r+, 读写【可读,可写】
    • w+,写读【可读,可写】
    • x+ ,写读【可读,可写】
    • a+, 写读【可读,可写】

     "b"表示以字节的方式操作

    • rb  或 r+b
    • wb 或 w+b
    • xb 或 w+b
    • ab 或 a+b

      表示:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码

    2.编写拷贝文件程序

    import sys
    
    #python3 copy.py source.file target.file
    if len(sys.argv) < 3:
        print('Usage:python3 copy.py source.file target.file')
        sys.exit()
    
    with open(r'%s' %sys.argv[1],'rb') as read_f,
            open(r'%s' %sys.argv[2],'wb') as write_f:
    
        for line in read_f:
            write_f.write(line)

    3.文件内的光标移动

    1. 文件打开方式为文本模式时,代表读取3个字符

    2. 文件打开方式为b模式时,代表读取3个字节

    3.其余的文件内光标移动都是以字节为单位如seek表示让光标跳转大到指定位置,tell显示光标那个字节,truncate

    4. 语法格式:file.seek(offset, whence=0):

    --> offset: 偏移量,需要向前或者是向后移动的字节数

    --> whence: 可选值,默认为0, 可选值为1或者2,表示从何处开始计算偏移,具体来说,

    --> 0表示从当前位置开始计算偏移

    --> 1表示从文件头位置开始计算偏移

    --> 2表示从文件尾开始计算偏移

    二.函数笔记

    1 .python中函数定义

    python中函数定义方法:
      
    def test(x):
         "The function definitions"
         x+=1
         return x
          
     def:定义函数的关键字
     test:函数名
     ():内可定义形参
     "":文档描述(非必要,但是强烈建议为你的函数添加描述信息)
     x+=1:泛指代码块或程序处理逻辑
     return:定义返回值
    
    
    调用运行:可以带参数也可以不带
    函数名()

    2.函数的好处:

      代码重用

      保持一致性,易维护

      可扩展性

    3.函数的定义语法

    def 函数名(arg1,arg2,arg3):
        "注释"
        函数体
        return 返回值
    
    函数名一般是动词
    参数、、、
    return:函数内部可以有多个return,但只能执行一次,函数就结束调用,
            并且会把return后的值作为函数执行的结果返回

    函数定义三种形式

    无参:应用场景仅仅只是执行一些操作,比如与用户交互,打印
    有参:需要根据外部传进来的参数,才能执行相应的逻辑,比如统计长度,求最大值最小值
    空函数:设计代码结构

    4.函数分为 实参跟形参

    #形参:在定义函数时,括号内的参数成为形参
    #特点:形参就是变量名

    #实参:在调用函数时,括号内的参数成为实参
    #特点:实参就是变量值

    #在调用阶段实参(变量值)才会绑定形参(变量名)
    #调用结束后,解除绑定

     

    5.参数的分类

    #参数的分类
    #位置参数:按照从左到右的顺序依次定义的参数
        #位置形参:必须被传值,并且多一个不行,少一个也不行
        #位置实参:与形参按照位置一一对应
    
    def foo(x,y):
         print(x)
         print(y)
    
     foo('egon',1,2)
    
    #关键字实参:指的是按照name=value的形式,指名道姓地给name传值
    def foo(name,age):
         print(name)
         print(age)
    
    foo('egon',18)
    
    默认参数需要注意的问题
    #问题一:默认参数必须放在位置参数之后
    # def foo(y=1,x):
    #     print(x,y)
    
    问题二:默认参数只在定义阶段赋值一次,而且仅一次
    # x=100
    # def foo(a,b=x):
    #     print(a,b)foo(age=18,name='egon')
  • 相关阅读:
    【原创】NOR FLASH Block Unprotection
    虚拟机:Snapshot
    Struts2:简单登陆验证DAO VO ACTION
    Cocos2dx:安装
    LoadRunner:Socket+Http协议
    LoadRunner中添加外部文件(md5.h),使用MD5
    Javascript实现网页水印(非图片水印)
    ASP.NET网站限制访问频率
    再谈“ASP.NET网站限制恶意访问”
    【新闻】“赢在淘宝”b比赛 30强、10强火热出炉~!
  • 原文地址:https://www.cnblogs.com/wangshaojie/p/7190386.html
Copyright © 2011-2022 走看看