08、python的基础--->文件操作
注:用btyes方式的一般都是在“非文字类的(比如图片)”
1、文件的读取
>>>第1种
#绝对路径
s = open('E:\天气.txt', mode='r', encoding='utf-8') # 用“utf-8 的方式去读取文件内容”,(绝对路径E:\天气.txt)
content = s.read()
print(content)
s.close() #相对路径
s = open('天气', mode='r', encoding='utf-8') # 用“utf-8 的方式去读取文件内容”,(相对路径天气-->当前目录下创建)
content = s.read() # read把数据类型转换 bytes--->str
print(content)
s.close()
>>>第2种
# 用bytes 的方式去读(b'\xe4\xbb\x8a\xe5\xa4\xa9\xe4\xb8\x8b\xe5\xa4\xa7\xe9\x9b\xa8\xe4\xba\x86\xe3\x80\x82')
s = open('天气', mode='rb')
content = s.read()
print(content)
s.close()
2、文件的写入
>>>1、对于w:没有此文件就会创建新文件
s = open('天气1', mode='w', encoding='utf-8') # 新创建一个文件'天气1',并且写入了'全湿透了'
s.write('全湿透了')
s.close()
>>>2、对于已有文件就会直接删除内容,再重新写入内容
s = open('天气1', mode='w', encoding='utf-8')
s.write('怎么办')
s.close()
>>>3、用btyes方式写入
s = open('天气1', mode='wb')
s.write('快出太阳吧'.encode('utf-8'))
s.close()
3、追加功能(只能进行一次追加,不能读取)
>>>第1种:
s = open('天气1', mode='a', encoding='utf-8') # mode = ‘a' (全湿透了快回家换衣服)
s.write('快回家换衣服')
s.close()
>>>第2种:用btyes方式追加
s = open('天气1', mode='ab')
s.write('快回家换衣服'.encode('utf-8')) # (全湿透了快回家换衣服快回家换衣服)
s.close()
# a+ 可以进行追加之后读取
s = open('天气1', mode='a+', encoding='utf-8') # mode = ‘a' (全湿透了快回家换衣服)
s.write('快回家换衣服')
s.seek(0) # 将光标挪到最前面
print(s.read())
s.close()
4、文件的读写(只能读-写两步,没办法再读再写(功能与追加类似))
s = open('天气', mode='r+', encoding='utf-8')
content = s.read() # 先读后写
s.write('全湿透了') # 先读之后,光标到最后,再写入内容(今天下大雨了全湿透了)
s.close()
# btyes读写
s = open('天气1', mode='r+b')
print(s.read())
s.write('AAAa'.encode('utf-8'))
s.close()
5、文件的写读(先清除内容再写入)
s = open('天气1', mode='w+', encoding='utf-8')
s.write('AAA') # 先写,写之前光标在前,把内容覆盖,再从光标位置往后读取内容(一般光标后面无数据)
s.seek(0) # seek()调光标位置,再读取 (AAA)
print(s.read())
s.close()
6、功能详解
>>>文件内容(今天下大雨了全湿透了)
s = open('天气', mode='r+', encoding='utf-8')
content = s.read(3) # read 直接读取字符
print(content) # 输出 "今天下"
s.close()
s = open('天气', mode='r+', encoding='utf-8')
s.seek(3) # seek 按照字节去定光标,一个中文三个字节,只能按照3 的倍数去读
content = s.read()
print(content) # 输出:天下大雨了全湿透了
print(s.readable()) # 判断是否可读
line = s.readline() # 一行一行的去读内容
line = s.readlines() # 以一个列表形式全部输出,每一行当做列表的一个元素(可用for循环打印出来)
print(line)
for line in s: # 将内容一行一行循环打印出来
print(line)
s.truncate(4) # 对原文件内容进行按字节截取
s.close()
>>>使用循环打印方式
with open('天气', mode='r+', encoding='utf-8') as s: # 直接按行循环打印出内容,无需close(),自动关闭
print(s.read())
with open('天气', mode='r+', encoding='utf-8') as s,\
open('天气', mode='w+', encoding='utf-8') as f: # 可以同时打开多个文件进行操作
>>>光标检测
s = open('天气', mode='r+', encoding='utf-8')
s.seek(3)
print(s.tell()) # 检测光标位置,应用:断点续传
s.close()
----->小程序
# 天气1内容:快回家里
s = open('天气1', mode='a+', encoding='utf-8')
s.write('换大衣服')
count = s.tell() # 先找到光标位置
s.seek(count-9) #将光标诺往前9个字节即三个字符,然后读取
print(s.read()) # 输出:大衣服
s.close()
08、python的基础--->文件操作的更多相关文章
- python语法基础-文件操作-长期维护
############### python-简单的文件操作 ############### # python中文件的操作 # 文件操作的基本套路 # 1,打开文件,默认是是只读方式打开文件 ...
- python os&shutil 文件操作
python os&shutil 文件操作 # os 模块 os.sep 可以取代操作系统特定的路径分隔符.windows下为 '\\' os.name 字符串指示你正在使用的平台.比如对于W ...
- Python的高级文件操作(shutil模块)
Python的高级文件操作(shutil模块) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如果让我们用python的文件处理来进行文件拷贝,想必很多小伙伴的思路是:使用打开2个 ...
- python 历险记(三)— python 的常用文件操作
目录 前言 文件 什么是文件? 如何在 python 中打开文件? python 文件对象有哪些属性? 如何读文件? read() readline() 如何写文件? 如何操作文件和目录? 强大的 o ...
- Python入门篇-文件操作
Python入门篇-文件操作 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.文件IO常用操作 open:打开 read:读取 write:写入 close:关闭 readlin ...
- Python之常用文件操作
Python之常用文件操作
- Python基础(六) 基础文件操作
今天学习python下对文件的基础操作,主要从open函数.File对象的属性.文件定位.简单操作.举例说明几个步骤开始学习,下面开始进入今天的主题: 一.open函数介绍 open函数主要是打开一个 ...
- 小白学 Python(18):基础文件操作
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- python基础-文件操作
一.文件操作 打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作. 打开文件的模式有: r ,只读模式[默认模式,文件必须存在,不存在则抛出异 ...
随机推荐
- 网络命令-nc(一)
一直在linux环境下编程,但却没有用过nc命令,不过最近发现Netcat这个命令-nc,发现真的蛮强大的, 为了备忘,就写了这个博客吧,不求全,只求把自己觉得很有用的命令整理出来,这篇文章估计要长期 ...
- python读取mysql返回json
python内部是以tuple格式存储的关系型数据库的查询结果,在实际的使用过程中可能需要转换成list或者dict,json等格式.在这里讲解如何将查询的结果转成json字符串.这里需要导入nump ...
- 1.Jmeter 快速入门教程(一) - 认识jmeter和google插件
Jmeter是免费开源的性能测试工具( 同时也可以用作功能测试,http协议debug工具 ). 在如今越来越注重知识产权的今天, 公司越来越不愿意冒着巨大的风险去使用盗版的商业性能测试工具. 但如 ...
- str方法
'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', ' ...
- python上播放mp3歌曲
我想从python播放我的歌曲(mp3),你能给我一个最简单的命令吗? 这不正确: import wave w = wave.open("e:/LOCAL/Betrayer/Metalik ...
- Spring学习笔记(10)——方法注入
引用 在大部分情况下,容器中的bean都是singleton类型的.如果一个singleton bean要引用另外一个singleton bean,或者一个非singleton bean要引用另外一个 ...
- 从一个Activity打开另外一个Activity
public class MainActivity extends Activity { /** Called when the activity is first created. */ @Over ...
- win32程序使用CString
https://www.cnblogs.com/qingtian224/p/5833456.html uafxcwd.lib(afxmem.obj) : error LNK2005: "vo ...
- 入门GoldenGate总结
前言 GoldenGate 是oracle官方的一款数据同步产品,类似于msyql的主从复制,配置也稍稍复杂,其中概念一定要搞清楚,不然会被坑的爬不起. 坑 1.数据在线同步(不是指数据初始化),只能 ...
- wireshark简单的过滤条件
http://blog.csdn.net/blue_jjw/article/details/8467885 一.IP过滤:包括来源IP或者目标IP等于某个IP比如:ip.src addr==192.1 ...