打开文件的三种方式:
  open(r'E:\学习日记\python\code\文件的简单操作.py')
  open('E:\\学习日记\\python\\code\\文件的简单操作.py')
  open('E:/学习日记/python/code/文件的简单操作.py')
  #字符串前面加一个r代表原生的raw
  # rt,wt,at:r读,w、a写,t表示以文本打开

  1. eg:
  2. >>> res = open(r'E:\test.txt','r',encoding='utf-8')
  3. >>> read = res.read()
  4. >>> print(read)
  5. >>> res.close()
  6. 123
  7. 小米
  8. qwe
  9. asd

#文本形式读取

  1. with open(r'E:\test.txt','rt',encoding='utf-8') as f:
  2.  
  3. #read(1)代表读取一个字符,读取光标往右的内容(默认光标在开头)
  4. data1 = f.read(1)
  5. print(data1)
  6. data2 = f.read(1)
  7. print(data2)
  8. 1
  9. 2
  10.  
  11. #readline:按行读取
  12. data1 = f.readline()
  13. data2 = f.readline()
  14. print(data1)
  15. print(data2)
  16. 123
  17. 小米
  18.  
  19. #readlines:把内容以列表形式显示
  20. data = f.readlines()
  21. print(data)
  22. ['123\n', '小米\n', 'qwe\n', 'asd']
  23. for a in data:
  24. print(a)
  25. 123
  26.  
  27. 小米
  28.  
  29. qwe
  30.  
  31. asd
  32.  
  33. #readable:是否可读(返回布尔类型)
  34. res = f.readable()
  35. print(res)
  36. True

文本形式写
  w:覆盖写
  a:追加写

  1. with open(r'E:\test.txt','wt',encoding='utf-8') as res:
  2. #write:往文件里覆盖写入内容
  3. res.write('谢谢你的爱1999')
  4. 谢谢你的爱1999test.txt
  5.  
  6. #writelines:传入可迭代对象变成字符串写入文件
  7. res.writelines(['qw','\n12','3er'])
  8. res.writelines({'name':'小米','age':23})
  9. helloqw
  10. 123ernameage
  11.  
  12. with open(r'E:\test.txt','at',encoding='utf-8') as res:
  13. #a模式write写入为追加
  14. res.write('\n456')
  15. helloqw
  16. 123ernameage
  17. 456
  18.  
  19. #writable:是否可写
  20. res.writable()
  21. True 

rb,wb,ab
  bytes类型读

  1. with open(r'E:\test.txt','rb') as res:
  2. a = res.read()
  3. print(a)
  4. b'hello\r\n\xe4\xbd\xa0\xe5\xa5\xbd'
  5. print(a.decode('utf-8'))
  6. hello
  7. 你好
  8.  
  9. # bytes类型写:
  10. #1.字符串前面加b(不支持中文)
  11. # 2.encode
  12. with open(r'E:\test.txt', 'wb') as res:
  13. res.write(b'asd')
  14. asd
  15. res.write('你好'.encode('utf-8'))
  16. 你好

  

光标的移动

  1. with open(r'E:\test.txt', 'wb') as res:
  2. #前面的数字代表移动的字符或字节,后面的数字代表模式(0:光标在开头,1:代表相对位置,2:代表光标在末尾)
  3. res.seek(2,0)
  4. print(res.read())
  5. e
  6. qwertyuiop
  7. res.seek(1,0)
  8. res.seek(2,1)
  9. print(res.read().decode('utf-8'))
  10. qwertyuiop
  11. res.seek(-3,2)
  12. print(res.read().decode('utf-8'))
  13. iop
  14.  
  15. # tail -f /var/log/message | grep '404' #光标的移动用途之一

 实例:

编写一个用户登录程序

登录成功显示欢迎页面
登录失败显示密码错误,并显示错误几次
登录三次失败后,退出程序

升级:
可以支持多个用户登录
用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态

  1. user = 'root'
  2. passwd = 'root'
  3. i = 0
  4. print("请登录:")
  5. while True:
  6. new_user = input("请输入用户:")
  7. new_passwd = input("请输入密码:")
  8. if new_user == user and new_passwd == passwd:
  9. print("欢迎光临")
  10. break
  11. else:
  12. print("密码输入错误!")
  13. i +=1
  14. if i == 3:
  15. print("三次输入错误,退出程序")
  16. break

  

python中文件的基础操作的更多相关文章

  1. 『无为则无心』Python基础 — 41、Python中文件的读写操作(一)

    目录 1.文件操作步骤 2.文件的读写操作 (1)文件的打开 (2)打开文件模式 (3)获取一个文件对象 (4)关于文件路径 1.文件操作步骤 当我们要读取或者写入文件时,我们需要打开文件,在操作完毕 ...

  2. python 中文件夹的操作

    文件有两个管家属性:路径和文件名. 路径指明了文件在磁盘的位置,文件名原点的后面部分称为扩展名(后缀),它指明了文件的类型. 一:文件夹操作 Python中os 模块可以处理文件夹 1,当前工作目录 ...

  3. Python中文件路径名的操作

    1 文件路径名操作 对于文件路径名的操作在编程中是必不可少的,比如说,有时候要列举一个路径下的文件,那么首先就要获取一个路径,再就是路径名的一个拼接问题,通过字符串的拼接就可以得到一个路径名.Pyth ...

  4. 『无为则无心』Python基础 — 42、Python中文件的读写操作(二)

    目录 (5)文件对象方法(重点) 1)写方法 2)读方法 3)seek()方法 4)tell()方法 (6)关闭 (7)综合练习:读取大文件 (5)文件对象方法(重点) 1)写方法 @1.语法 对象对 ...

  5. Python中文件的读写操作的几种方法

    对文件的操作,步骤为:打开一个文件-->读取/写入内容-->保存文件 文件读写的3中模式 # 1.w 写模式,它是不能读的,如果用w模式打开一个已经存在的文件,会清空以前的文件内容,重新写 ...

  6. Python中文件的读写操作

    文件操作基本流程: 1. 介绍 计算机系统是由计算机硬件,操作系统,和应用程序三部分组成. 内存 存放不持久 硬盘 可以使数据持久化 文件操作  数据持久化的一种 全栈开发  框架类 2. 文件的操作 ...

  7. python中字典的基础操作

    dict1 = { 'name':'王麻子', 'age':25, 'phone':12580, 'high':160 } dict2 = { 'name':'张三', 'age':38, 'phon ...

  8. python 关于文件夹的操作

    在python中,文件夹的操作主要是利用os模块来实现的, 其中关于文件夹的方法为:os.lister() , os.path.join() , os.path.isdir() #  path 表示文 ...

  9. python 中文件输入输出及os模块对文件系统的操作

    整理了一下python 中文件的输入输出及主要介绍一些os模块中对文件系统的操作. 文件输入输出 1.内建函数open(file_name,文件打开模式,通用换行符支持),打开文件返回文件对象. 2. ...

随机推荐

  1. HDU - 1512  Monkey King

    Problem Description Once in a forest, there lived N aggressive monkeys. At the beginning, they each ...

  2. LeetCode初级算法--数组01:只出现一次的数字

    LeetCode初级算法--数组01:只出现一次的数字 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog.csdn. ...

  3. Oracle 编写存储过程并设置定时执行

    Oracle 版本:11g PL/SQL 版本:11.0.3.1770 1.如果编写单个存储过程,则直接在procedure新建并编写:如果需要写多个同类功能的存储过程,为了方便管理,可以现在pack ...

  4. Vue的介绍及安装和导入

    08.27自我总结 Vue的介绍及安装和导入 本质就是封装一些js 一Vue的介绍 进式 JavaScript 框架 通过对框架的了解与运用程度,来决定其在整个项目中的应用范围,最终可以独立以框架方式 ...

  5. Microsoft Word 2019 mac破解版下载

    Microsoft Word 2019 Mac版是大名鼎鼎的Office办公软件组件之一,能帮助你进行文字排版,可方便的进行创作项目.作业.信件.博客.剧本.笔记.评论文章或简历. Microsoft ...

  6. 通过反射对任意class类中方法赋值的方式

    import org.apache.commons.lang3.StringUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;i ...

  7. pycharm2018.2汉化 解决设置打不开问题

    首先检查下是不是装了中文汉化包resources_cn.jar 如果有的话,解决办法:1.更换一个汉化包或者将原来的resources_en.jar也放进lib目录下 2.将汉化包都删除,只留下原版的 ...

  8. Mqtt-Client

    客户端选择:paho MQTT client. 使用vs2013编译成库 需要用到paho-mqtt3a库和paho-mqtt3c库.

  9. python属性的默认值

    python类的构造函数中属性可以设置默认值,实例化出来的对象如果属性使用默认值,默认值的地址是相同的. class A: def __init__(self, name = []): self.__ ...

  10. Windows 批量修改文件后缀名

    利用ren 文件名替换命令 for循环去批处理 @echo off for %%m in (*) do ( if not "%%m"=="temp.bat"( ...