# ***********第一部分*********** # 1.读文件,首先利用一个变量承装文件 最主要注意的是encoding的问题,看看是否是格式问题 f = open(file='D:\study\少妇白洁.txt', mode='r', encoding='GBK') # file等关键字可以直接省略 mode 指模式 # 对变量使用方法read进行读取 data = f.read() # 输出 print(data) # 关闭 f.close() # ***********第二部分*********** # 上回打开文件的时候会遇到编码问题,如何避免这种问题(去掉指定encoding会默认utf-8) f = open(file='D:\study\少妇白洁.txt', mode='rb') # 读取模式更改为rb, 略去指定编码,将以二进制读取文件 data = f.read() print(data) f.close() # ***********第三部分*********** # 导入第三库查看编码规则:chardet, # 在cmd界面找到pip的安装路径,在python安装路径下。输入:pip3 install chardet下载 # pycharm软件打开:file-setting-project-interproject点击+下载 import chardet f = open(file='D:\study\少妇白洁.txt', mode='rb') # 使用chardet模块必须以rb模式读取文件 result = chardet.detect(f.read()) print(result) f.close() # 查出编码之后,进行解码 f = open(file='D:\study\少妇白洁.txt', mode='rb') data = f.read() print(data.decode('GBK')) # ***********第四部分*********** # 文件的写入:新建内容 f = open("D:\study\僻邪剑谱.txt", "w", encoding="utf-8") data = f.write("第一章 欲练此功,必先自宫") f.close() # 文件的追加:保留原有文件 a的意思是append f = open("D:\study\僻邪剑谱.txt", 'a') data = f.write("\n第二章 不宫也行") f.close() # 文件的循环:文件过大时,需要边缓存边查看 fi = open("D:\study\僻邪剑谱.txt", "r") data = fi.read() for line in data: print(line) fi.close() # ***********第五部分*********** # 文件混合读写模式 f = open("D:\study\少妇白洁.txt", 'r+', encoding='utf-8') data = f.read() print("前:", data) f.write("访问网址:w'w'w.baidu.com") print(f.read()) # 文件中存在,但是读不出,因为此时光标在最后一层,需要用seek方法回到前面 f.seek(0) print(f.read()) f.close() # 光标 seek 指定光标位置 tell 输出光标位置 # 文件操作方法 # truncate 从开头到光标当前位置截断 # flush 将缓存中的内容读到磁盘 # readline 执行一次读一行文件内容 # ***********第六部分*********** # 文件修改:通过循环进行替换 import os f_old_name = "D:\study\僻邪剑谱.txt" f_new_name = "%s.new" % f_old_name old_name = "望海潮" new_name = "王海潮" f_o = open(f_old_name, 'r', encoding='utf-8') f_n = open(f_new_name, 'w', encoding='utf-8') for line in f_o: if old_name in line: line = line.replace(old_name, new_name) f_n.write(line) f_n.close() f_o.close() os.rename(f_new_name, f_old_name) 最重要的还是要多写多练,有的时候看着视频觉得代码一模一样,但是自己写的时候会遇到各种问题,解决问题的过程就是自己慢慢提高的过程