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

    文件操作

    一、 打开文件

    在 python 中使用 open 函数可以打开一个已经存在的文件
        格式:f = open(文件名, 访问模式)
    

    二、 关闭文件

    在 python 中使用 close 函数可以关闭一个打开的文件
        格式:f.close()
    

    三、 写数据(write)

    使用 write() 可以完成向文件写入数据



    注意:如果该文件不存在则创建一个新文件,若果存在就先清空然后在写入数据

    四、 读数据

    A、读数据(read)

    使用 read(num) 可以从文件中读取数据,num 表示要从文件中读取的数据的长度(单位是字节),如果没有传入 num参数,那么就表示读取文件中所有的数据



    注意:如果读了多次,那么后面读取的数据是从上次读完后的位置开始的

    B、 读数据(readlines)

    就像 read() 没有参数时一样, readlines 可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素

    test.txt 中的内容:

    test_readlines.py 中的内容:

    执行结果:

    C、 读数据(readline)

    单行读取数据:

    test_readline.py 中内容:

    执行结果:

    思考题:制作文件的备份(输入文件名,然后程序自动完成对文件进行备份)

    五、 文件的随机读写

    A、 获取当前读写的位置

    在读写文件的过程中,如果想知道当前的位置,可以使用 tell() 来获取
        格式:position = f.tell()
    


    B、 定位到某个位置

    如果在读写文件的过程中需要从另外一个位置进行操作的话,可以使用 seek() 函数
        格式:seek(offset, from)
    
    • offset:偏移量
    • from : 方向(0: 表示文件的开头, 1: 表示当前位置, 2: 表示文件末尾)

    例:读取一定数据后,把位置设置为从文件头,偏移5个字节

    六、 文件的重命名、删除

    A、 文件的重命名

    os模块中的 rename() 可以完成对文件的重命名操作
        格式:os.rename(原文件名, 新文件名)
    


    B、 删除文件

    os模块中的 remove() 可以完成对文件的删除操作
        格式:os.remove(待删除文件名)
    

    七、 文件夹的相关操作

    实际开发中,有时需要用程序的方式对文件夹进行一定的操作,比如创建,删除等。就像对文件操作需要 os 模块一样

    A、创建文件夹

        格式:os.mkdir("文件夹名")
    

    B、获取当前目录

        格式:os.getcwd()
    

    C、 改变默认目录

        格式:os.chdir("../")
    

    D、 获取当前路径的目录列表

        格式:os.listdir("./")
    

    E、 删除文件夹

        格式:os.rmdir("待删除的文件夹")
    
    思考题:如何批量修改文件名

    008_many_modify_file.py 内容:

    查看修改前目录下的所有文件:

    执行添加标志结果:

    查看修改后目录下的所有文件:

    思考题:制作一个“密码薄”,其可以存储一个网址(例如:www.luosir.com), 和一个密码(例如:123456), 请编写程序完成这个“密码薄”的增删改查功能,并且实现文件存储功能

    009_passwdbook.py 中内容:

    #coding=utf-8
    
    passwds = []
    
    while True:
        # 提示输入密码薄的功能
        fun = int(input("请输入您要操作的功能(1: 增, 2: 删, 3: 改, 4:查, 5: 遍历, 0: 退出系统): "))
    
        if fun == 1:
            add = {}
            add_web = input("请输入您要添加的网站: ")
            add["web"] = add_web
            add_pw = input("请输入您要添加的密码: ")
            add["pw"] = add_pw
    
            passwds.append(add)
    
        elif fun == 2:
            i=0
            remove_flag = 0
            list_num = len(passwds)
            print(list_num)
            if list_num == 0:
                print("没有数据在给您删除啦!!!")
                break
            remove_name = input("请输入您要删除的网站: ")
            for passwd in passwds:
                for temp in passwd.values():
                    if temp == remove_name:
                        remove_flag = 1
                        break
                if remove_flag == 1:
                    break
                i += 1
                if i==list_num:
                    print("找不到您要删除的内容哦!!!")
            if i>=0:
                del passwds[i]
    
        elif fun == 3:
            mod_num = int(input("请输入你要改动的密码薄序号: "))
            mod_web = input("请输入你要修改的新网站: ")
            mod_pw = input("请输入你要修改的新密码: ")
            passwds[mod_num]["web"] = mod_web
            passwds[mod_num]["pw"] = mod_pw
    
        elif fun == 4:
            find_num = int(input("请输入您要查找的密码薄序号: "))
            print(passwds[find_num])
    
        elif fun == 5:
            for passwd in passwds:
                print(passwd)
    
        elif fun == 0:
            f = open("passwdbook.txt", "w")
            if f:
                for onedic in passwds:
                    for key, value in onedic.items():
                        f.write(key+":")
                        f.write(value+"  ")
                    f.write("
    ")
                f.close
                break

    执行结果:

    <wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

  • 相关阅读:
    基础总结篇之一:Activity生命周期
    浅析Android中的消息机制
    详解Android中AsyncTask的使用
    URLConnection的连接、超时、关闭用法总结
    使用Open Flash Chart(OFC)制作图表(Struts2处理)
    用dTree组件生成无限级导航树
    jQuery插件Jeditable的使用(Struts2处理)
    Python Day 56 Django框架学习、学生管理系统迭代二、前后端交互数据传输方式、前台两种跳转方式、form表单详解
    Python Day 55 Django框架、利用学生管理系统来学习Django框架 (版本一)、数据库封装成类、单表操作新url方式、模态对话框
    Python Day 54 Django框架、web请求流程、状态码、自定义web框架
  • 原文地址:https://www.cnblogs.com/luosir520/p/11446362.html
Copyright © 2011-2022 走看看