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

    #读取当前路径下的文件
    f = open('模特主妇护士班主任.txt',mode = 'r',encoding='utf-8')
    content = f.read()
    print(content)
    f.close()
    # 路径下的文件
    f = open('g:\MyPython\模特主妇护士班主任.txt',mode = 'r',encoding='utf-8')
    content = f.read()
    print(content,type(content))  #我们是中国人民解放军 <class 'str'>
    f.close()
    f = open('g:\MyPython\模特主妇护士班主任.txt',mode = 'rb')
    content = f.read()
    print(content) #b'\xe6\x88\x91\xe4\xbb\xac\xe6\x98\xaf\xe4\xb8\xad\xe5\x9b\xbd\xe4\xba\xba\xe6\xb0\x91\xe8\xa7\xa3\xe6\x94\xbe\xe5\x86\x9b'
    f.close()
    # 文件写入 (只写)对于W ,没有此文件就创建,如果有就覆盖
    f = open('log',mode = 'w',encoding='utf-8')
    f.write('我们是12骑兵')
    f.close()
    f = open('log1',mode = 'wb')
    f.write('我们是12骑兵'.encode('utf-8'))
    f.close()
    f = open('log1',mode = 'wb')
    f.write('我们是12骑兵'.encode('gbk'))
    f.close()
    # 追加
    f = open('log',mode = 'a',encoding='utf-8')
    f.write('在后面加')
    f.close()
    f = open('log',mode = 'ab')
    f.write('新地'.encode('utf-8'))
    f.close()
    # 读写文件  最常用的是 r+
    f = open('log',mode = 'r+',encoding='utf-8')
    print(f.read())              #我们是中国人民解放军
    f.write('中主的耻地是地')   #我们是12骑兵在后面加新地中主的耻地是地
    f.close()
    f = open('log',mode = 'r+',encoding='utf-8')  #不要先写后读
    f.write('asddes')
    print(f.read())
    f.close()
    f = open('log',mode = 'r+b')  #以bytes读写
    print(f.read())
    f.write('中主的耻地是地'.encode('utf-8'))
    f.close()
    # 文件写入 (只写),没有此文件就创建,如果有就覆盖
    f = open('log2',mode = 'w+',encoding='utf-8')
    f.write('我们是12骑兵')
    f.seek(0)           #指向位置的光标
    print(f.read())     #我们是12骑兵
    f.close()
    f = open('log',mode = 'a+',encoding='utf-8')
    f.write('在后面加')
    f.seek(0)           #指向位置的光标
    print(f.read())
    f.close()
    # 下面都以 r+ 为例,功能讲解   如果是中文,seek是按字节指定,不可以半个汉字
    f = open('模特主妇护士班主任.txt',mode = 'r+',encoding='utf-8')  #asdfkvngifftr
    content = f.read(3)     #读取个数 read是按字符指定
    print(content)          #asd
    f.seek(3)               #指针指向 3
    print(f.tell())         #当前光标位置 3
    print(f.read())         #fkvngifftr
    f.close()
    f = open('log',mode = 'a+',encoding='utf-8')  #asddes是12
    f.write('在后面加')                             #asddes是12在后面加
    count = f.tell()        #当前光标位置
    f.seek(count-6)         #指向位置的光标
    print(f.read(1))        #读一个字          面
    f.close()
    f = open('log',mode = 'a+',encoding='utf-8')    #asddes是12
                                                      #早顺呃顷欠
    f.seek(0)
    line = f.readline()         #读一行               #asddes是12
    print(line)
    f.seek(f.tell())            #文件光标指向前一个结束光标
    line = f.readline()         #读一行               #asddes是12
    print(line)
    f.seek(0)
    line = f.readlines()        #每一行当成列表中的一个元素
    print(line)                 #['asddes是12\n', '早顺呃顷欠']
    f.seek(0)
    for line in f:             #循环打印文件中的内容  (如果文件大不可以这样读)
        print(line)             #asddes是12
                                #早顺呃顷欠
    f.close()
    #with  不用关闭语句
    with open('log',mode = 'r+',encoding='utf-8') as obj:  #with  不用关闭语句
        print(obj.read())
    with open('log',mode = 'r+',encoding='utf-8') as f,\
            open('log',mode = 'w+',encoding='utf-8') as f1:
        print(f.read())

     #注册与登录

    username = input('请输入你要注册的用户名:')
    password = input('请输入你要注册的密码:')
    with open('list_of_info',mode='w',encoding='utf-8') as f:
        f.write('{}\n{}'.format(username,password))
    print('恭喜你注册成功')
    lis = []
    i = 0
    while i<3:
        usn = input('请输入你的用户名:')
        pwd = input('请输入你的密码:')
        with open('list_of_info',mode='r+',encoding='utf-8') as f1:
            for line in f1:
                lis.append(line)
        if usn == lis[0].strip() and pwd == lis[1].strip():
            print('登录成功')
            break
        else:
            print('你的账号或密码错误')
        i += 1

     #修改文件 文件是不能修改的,可以一行一行读文件,修改后存入新文件,最后改回来

    小护士班主任      文件中的内容为:
    小护士:李小妞
    班主任:星儿
    with open('小护士班主任',encoding='utf-8') as f,open('小护士班主任.bak','w',encoding='utf-8') as f2:
        for line in f:
            if '星儿' in line:
                line = line.replace('星儿','阿娇')
            f2.write(line)
    import os
    os.remove('小护士班主任')                         #删除文件
    os.rename('小护士班主任.bak','小护士班主任')     #重命名文件

    执行结果:

    小护士班主任      文件中的内容为:
    小护士:李小妞
    班主任:星儿

  • 相关阅读:
    HTML_表单
    HTML_列表、表格与媒体元素
    HTML_HTML5基础
    使用java理解程序逻辑 试题分析
    字符串
    带参数的方法
    人机猜拳
    类的无参方法
    类和对象
    vue cli+axios踩坑记录+拦截器使用,代理跨域proxy(更新)
  • 原文地址:https://www.cnblogs.com/bydzxzy/p/9636450.html
Copyright © 2011-2022 走看看