文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python_文件操作

2023-01-30 23:28

关注

一、文件处理基本形式

 

# 1. 打开文件,得到文件句柄并赋值给一个变量
# 文件句柄 = open('文件路径', '模式', '操作文件的字符编码')

f = open('carter', 'r', encoding='UTF-8')  # 默认打开模式就为r

# 2. 通过句柄对文件进行操作
data = f.read()
print(data)

# 3. 关闭文件
f.close()  # 回收操作系统的资源

二、打开文件的模式

1. 打开文件的模式有(默认为文本模式):
r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】 w,只写模式【不可读;不存在则创建;存在则清空内容】 a, 之追加写模式【不可读;不存在则创建;存在则只追加内容】 2. 对于非文本文件,我们只能使用b模式,"b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码、图片文件的jgp格式、视频文件的avi格式)
rb wb ab 注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码 3. 了解部分
"+" 表示可以同时读写某个文件 r+, 读写【可读,可写】 w+,写读【可读,可写】 a+, 写读【可读,可写】 x, 只写模式【不可读;不存在则创建,存在则报错】 x+ ,写读【可读,可写】 xb

三、操作文件的方法

f.read() #读取所有内容,光标移动到文件末尾
f.readline() #读取一行内容,光标移动到第二行首部
f.readlines() #读取每一行内容,存放于列表中

f.write('1111\n222\n') #针对文本模式的写,需要自己写换行符
f.write('1111\n222\n'.encode('utf-8')) #针对b模式的写,需要自己写换行符
f.writelines(['333\n','444\n']) #文件模式
f.writelines([bytes('333\n',encoding='utf-8'),'444\n'.encode('utf-8')]) #b模式

#了解
f.readable() #文件是否可读
f.writable() #文件是否可读
f.closed #文件是否关闭
f.encoding #如果文件打开模式为b,则没有该属性
f.flush() #立刻将文件内容从内存刷到硬盘
f.name

 

小练习

while True:
    msg = """\n\033[0;34m1 注册\n2 查看\033[0m
    """
    print(msg)
    choice = input('\033[31;0m请输入编号>>:\033[0m').strip()
    if choice == '1':
        # print('注册')
        phone = input('\033[32;0m请输入手机号>>>:\033[0m').strip()
        name = input('\033[33;0m请输入用户名>>>:\033[0m').strip()
        pwd = input('\033[34;0m请输入密码>>>:\033[0m').strip()
        sex = input('\033[35;0m请输入性别>>>:\033[0m').strip()
        age = input('\033[36;0m请输入年龄>>>:\033[0m').strip()
        with open('db.txt', 'a', encoding='UTF-8') as f:
            f.write('%s,%s,%s,%s,%s\n' % (phone, name, pwd, sex, age))

    elif choice == '2':
        # print('查看')
        phone = input('\033[37;0m请输入手机号:\033[0m').strip()
        with open('db.txt', 'rt', encoding='UTF-8') as f:
            for line in f:
                if line.startswith(phone):
                    print(line, end='')
                else:
                    print('\033[31;1m此用户还没注册\033[1m')
                    break

    else:
        print('\033[31;1m输入的不正确\033[1m')

 

 
阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯