文件操作

文件操作

一、 打开文件

在 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("\n")
            f.close
            break

执行结果:

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

posted on 2019-09-02 14:29  wawzzll  阅读(187)  评论(0编辑  收藏  举报

导航