Python全栈学习Day8 文件操作

文件操作

如何打开一个文件
1.文件路径
2.编码方式:utf-8 gbk
3.操作方式:只读,只写,追加,写读,读写
练习
以什么方式储存的文件就要以什么形式打开,比如gbk

   f = open('d:\马圣德.txt', mode='r', encoding='gbk')
    content = f.read()
    print(content)
    f.close()

只读:r

rb:打开或读取图片等非文字文件

f = open('d:\马圣德.txt', mode='rb')
content = f.read()
print(content)
f.close()

在这里插入图片描述

只写:w

第一步:删除原文件内容全部清除
第二步:将你写内容添加到文件中
若没有此文件则创建文件

f = open('马圣德', mode='w', encoding='gbk')
f.write('山东人')
f.close()

wb:

f = open('马圣德', mode='wb')
f.write('山东人'.encode('utf-8'))
f.close()

追加:a

f = open('马圣德', mode='a', encoding='utf-8')
f.write('中国人')
f.close()

ab:以Bytes类型追加进入

f = open('马圣德', mode='ab')
f.write('很强'.encode('utf-8'))
f.close()

读,写

先读后改

f = open('马圣德', mode='r+', encoding='utf-8')
print(f.read())
f.write('马圣德')
f.close()

先改后写

f = open('马圣德', mode='r+', encoding='gbk')
f.write('你')
print(f.read())
f.close()

写,读

先清除后写

f = open('马圣德', mode='w+', encoding='gbk')
f.write('哈哈')
print(f.read())
f.close()

2.a+

  f = open('马圣德', mode='a+', encoding='gbk')
    f.write('哈哈')
    print(f.read())
    f.close()

功能详解

read
按字符走

f = open('马圣德', mode='r+', encoding='gbk')
content = f.read(3)
print(content)
f.close()

seek
按字节走

f = open('马圣德', mode='r+', encoding='gbk')
f.seek(4)
content = f.read()
print(content)
f.close()

tell()
告诉你光标的位置

f = open('马圣德', mode='r+', encoding='gbk')
f.seek(4)
ad = f.tell()
print(ad)
f.close()

readline()
一行行的读

f = open('马圣德', mode='r+', encoding='gbk')
line = f.readline()
print(line)
f.close()

readlines()
每一行当成列表中的一个元素然后添加到列表中

f = open('马圣德', mode='r+', encoding='gbk')
line = f.readlines()
print(line)
f.close()

在这里插入图片描述
for循环读取文件

f = open('马圣德', mode='r+')
for line in f:
    print(line)
f.close()

with

不用写close

with open('马圣德', mode='r+') as f:
    print(f.readline())

案例

1.注册登入(自己写的)

user = input('请注册账号')
pwd = input('请注册密码')
with open('账号', mode='r+') as f1,\
        open('密码', mode='r+') as f2:
    f1.write(user)
    f1.seek(0)
    index_user = f1.read()
    f2.write(pwd)
    f2.seek(0)
    index_pwd = f2.read()
login_user = input('请输入账号')
login_pwd = input('请输入密码')
if login_user == index_user and login_pwd == index_pwd:
    print('登入成功')
else:
    print('登入失败')

老师写的

user = input('请注册账号')
pwd = input('请注册密码')
with open('zhanghaomima', mode='w') as f:
    f.write('{}\n{}'.format(user, pwd))
print('注册成功!')
lis = []
i = 0
while i < 3:
    uname = input('请输入账号')
    upwd = input('请输入密码')
    with open('zhanghaomima', mode='r+') as f1:
        for line in f1:
            lis.append(line)
        if uname == lis[0].strip() and upwd == lis[1].strip():
            print('登入成功')
            break
        else:
            print('登入失败')

    i = i + 1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值