首页 > 编程语言 >python基础10

python基础10

时间:2023-05-24 17:46:05浏览次数:35  
标签:10 encoding python utf8 基础 文件 print txt open

文件基本操作

三步骤

  1.打开文件

  2.操作文件

  3.关闭文件

关键字:open

 1 f=open(r'a.txt','r',encoding='utf8')
 2 print(f) # 操作系统打开文件
 3 
 4 # 操作文件:读、写
 5 res=f.read()
 6 
 7 # 关闭文件:释放资源
 8 f.close
 9 
10 
11 #方式二:
12 #with上下管理器
13 with open(r‘a.txt’,‘r’,encoding=‘utf8’) as f:
14         print(f.read())

文件读写模式

r:read(读)

w:write(写)

a:append(追加写)

#r模式
#1.路径不存在,直接报错
with open(r‘a.txt’,‘r’,encoding=‘utf8’)as f:
    print(f.read())
 
#2.路径存在,打印结果
with open(r‘a.txt’,‘r’,encodi=‘utf8’)as f:
    print(f.read())
#w模式
#1.路径不存在的,会自定创建出来文件
with open(r‘a.txt’,‘w’,enco=‘utf8’)as f:
    print(f.write())

#2.路径存在
#把文件的原本数据清除,从新写入
with open(r,‘a.txt’,‘w’,encoding=‘utf8’)as f:
    f.write(‘hello’)
#写文件的数据类型必须是字符串类型,和字节类型,其他类型都不能直接写入
#a模式
#1.路径不存在,会自动创建出新文件
with open(r‘a.txt’,‘a’,encoding=‘utf8’)as f:
    f.read(‘hello’)

#2.路径存在,在原来文件末尾新加内容
with ope(r‘a.txt’,‘a’,encoding=‘utf8’)as f:
    f.read.(‘hello\n’)

文件操作方法

1.读系列

#读系列
with open(r‘b.txt’,‘r’,encoding=‘utf8’)as f:
    print(f.read())
#一次读qu文件的一行内容,一行一行读取
    print(f.readline())
#读取文件的内容用列表形式表现出来,一行代表一个元素
    print(f.readlines())
#判断文件是否可读
    print(f.readable())

2.xie系列

#2.写系列
with open(r‘a.txt’,‘w’,encoding=‘utf8’)as f:
    f.write(‘hello baby’)
    f.write(str(123))#只能写字符串
#判断是否可读
    fprint(f.writable())
    f.writelines(['hello\n','world\n','kevin','jack'])

文件的读操作优化

with open(r'a.txt','r',encoding='utf8') as f:
   '''read方法是一次性读取文件的全部内容,所以,当文件内容非常打的时候,有可能造成内存溢出
     我们不允许这样的情况发生,当当文件内容非常小的时候,无所谓
    针对上述问题如何解决?'''
    利用for循环来解决
for line in f:
    print(line)#for循环就是一行一行的读取内容

课堂练习

简易版的注册与登录功能

注册功能
# # 1.把用户名保存到文件夹中
# # 1.1 让用户输入用户名和密码
# username = input('请输入你的用户名>>>:').strip()
# password = input('请输入你的密码>>>:').strip()
# # 1.2把用户输入的密码存到文件中
# res = '%s|%s' % (username, password)
# with open(r'a.txt', 'a', encoding='utf8') as f:
#     f.write(res\n)
#     print('{}注册成功'.format('username'))


登录功能
# # 1.把用户名保存到文件夹中
# # 1.1 让用户输入用户名和密码
# username = input('请输入你的用户名>>>:').strip()
# password = input('请输入你的密码>>>:').strip()
# # 1.2把用户输入的密码存到文件中
# res = '%s|%s' % (username, password)
# with open(r'a.txt', 'a', encoding='utf8') as f:
#     f.write(res\n)
#     print('{}注册成功'.format('username'))

多用户注册和多用户下的登录功能

多用户注册
         while True:
            username = input('请输入你的用户名>>>:').strip()
            password = input('请输入你的密码>>>:').strip()
            # 判断用户名是否存在
            with open(r'a.txt', 'r', encoding='utf8') as f2:
                for i in f2:
                    i1 = i.split('|')
                    if username == i1[0]:
                        print('用户已经注册')
                        break
                else:
                    # 1.2把用户输入的密码存到文件中
                    res = '%s|%s\n' % (username, password)
                    with open(r'a.txt', 'a', encoding='utf8') as f:
                        f.write(res)
                        print('{}注册成功'.format('username'))  


多用户登录
 user_name = input('请输入你的用户名>>>:').strip()
        user_password = input('请输入你的密码>>>:').strip()
        # 2.2读出文件内容
        with open(r'a.txt', 'r', encoding='utf8') as f1:
            for line in f1:
                line.split('|')
                if user_name == line.split('|')[0] and user_password == line.split('|')[1].strip('\n'):
                    print('登陆成功')
                    break
            else:
                print('登录失败')        

整合代码

while True:
    print("""
    1.选择用户注册
    2.选择用户登录
    3.退出
    """)
    new_name = input('请输入你选择的编号:>>>')
    if new_name == '1':
        print('进入用户注册程序')
        while True:
            username = input('请输入你的用户名>>>:').strip()
            password = input('请输入你的密码>>>:').strip()
            # 判断用户名是否存在
            with open(r'a.txt', 'r', encoding='utf8') as f2:
                for i in f2:
                    i1 = i.split('|')
                    if username == i1[0]:
                        print('用户已经注册')
                        break
                else:
                    # 1.2把用户输入的密码存到文件中
                    res = '%s|%s\n' % (username, password)
                    with open(r'a.txt', 'a', encoding='utf8') as f:
                        f.write(res)
                        print('{}注册成功'.format('username'))
                break
    # 2.1取出文件的内容
    elif new_name == '2':
        print('进入用户登录程序')
        user_name = input('请输入你的用户名>>>:').strip()
        user_password = input('请输入你的密码>>>:').strip()
        # 2.2读出文件内容
        with open(r'a.txt', 'r', encoding='utf8') as f1:
            for line in f1:
                line.split('|')
                if user_name == line.split('|')[0] and user_password == line.split('|')[1].strip('\n'):
                    print('登陆成功')
                    break
            else:
                print('登录失败')
    elif new_name == '3':
        break
    else:
        print('输入有误,请按提示输入')

文件操作模式

t模式:text文本

r》》》rt

w》》》wt

a》》》at

  1.以字符串为基本单位

  2.它只能操作字符串形式

  3.encoding参数必须写

b模式:bytes二进制模式

r》》》rb

w》》》wb

a》》》ab

  1.b不能省略,必须写rb

  2.他可以操作任意的数据类型:视频、音频‘图片

  3.encoding参数必须不写

  4.它的数据以字节为单位’

标签:10,encoding,python,utf8,基础,文件,print,txt,open
From: https://www.cnblogs.com/shanghaipudong/p/17429030.html

相关文章

  • macbook苹果m1芯片训练机器学习、深度学习模型,resnet101在mnist手写数字识别上做加速
    apple的m1芯片比以往cpu芯片在机器学习加速上听说有15倍的提升,也就是可以使用applemac训练深度学习pytorch模型!!!惊呆了 安装applem1芯片版本的pytorch 然后使用chatGPT生成一个resnet101的训练代码,这里注意,如果网络特别轻的话是没有加速效果的,还没有cpu的计算来的快这里......
  • 【编程日记】搭建python开发环境
    0.相关确定0.1确定操作系统Python是一种跨平台的编程语言,这意味着它能够运行在所有主要的操作系统中。然而,在不同的操作系统(Windows/Mac/Linux)中,安装Python的方法存在细微的差别。本教程我们使用的是Windows系统,对于Mac和Linux暂时不做介绍0.2确定Python版本当前有两个不同的......
  • SQL_lab总结1-10关
    第三关字符型注入测试判断字段数?id=1')and1=1orderby1--+?id=1')and1=1orderby4--+回显库名?id=-1')unionselect1,version(),database()--+or爆破数据库?id=-1%27)%20union%20select%201,version(),group_concat(schema_name)frominformation_schema......
  • ASEMI代理长电可控硅MCR100-8特征,MCR100-8应用
    编辑-Z长电可控硅MCR100-8参数:型号:MCR100-8VDRM/VRRM:600VIT(RMS):0.8A结点温度Tj:-40~125℃储存温度Tstg:-55~150℃通态电压VTM:1.7V栅极触发电压VGT:0.8V正向或反向阻断电流峰值:10µA保持电流IH:5mA栅极触发电流IGT:15µA  MCR100-8封装规格:封装:TO-92总长度:19.2mm......
  • python hmac_sha256 转为 java
    Javahmacsha256packagecom.example;importjava.security.InvalidKeyException;importjava.security.NoSuchAlgorithmException;importjavax.crypto.Mac;importjavax.crypto.spec.SecretKeySpec;importjavax.xml.bind.DatatypeConverter;publicclassMain......
  • sshpass报错 Permission denied, please try again.和 connect to host localhost po
    最近在做自动化时,自动化脚本用sshpass给远程机器发送命令(sshpass-p"123456"ssh-p10022root@localhost-oStrictHostKeyChecking=no"poweroff")报错:Permissiondenied,pleasetryagain.和 ssh:connecttohostlocalhostport10022:Connectionrefused   1.......
  • Python文件读写、StringIO和BytesIO
    StringIO和BytesIO很多时候,数据读写不一定是文件,也可以在内存中读写。StringIO就是在内存中读写str。要把str写入StringIO,我们需要先创建一个StringIO,然后,像文件一样写入即可:>>>fromioimportStringIO>>>f=StringIO()>>>f.write('hello')5>>>f.write('')......
  • centos7安装Python3.9
      yumremovepython-3*先卸载所有之前装的python-3。yum-yinstallzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgccmakeyum-yinstallepel-releaseyum-yinstallpython-pipwgethttps://www.python.org/ftp/python/3.......
  • Python从0到1丨了解图像形态学运算中腐蚀和膨胀
    摘要:这篇文章将详细讲解图像形态学知识,主要介绍图像腐蚀处理和膨胀处理。本文分享自华为云社区《[Python从零到壹]四十七.图像增强及运算篇之腐蚀和膨胀详解》,作者:eastmount。一.形态学理论知识数学形态学的应用可以简化图像数据,保持它们基本的形状特征,并出去不相干的结构。......
  • Windows10 无法更新密码。为新密码提供的值不符合字符域的长度、复杂性或历史要求
    域账号死活无法修改密码,说要求不足,可是AD域几乎不限制密码条件。Ctrl+Alt+Del改自己管理员密码唯一找到的解决方法:只有在勾选"下次变更密码"时使用者换密码系统才会认定符合複杂度要求,这样操作可以正常修改密码    ......