python 文件操作:
- 打开文件
- 读写文件
myfile = open(包含文件名的文件路径,打开权限)
会返回一个文件对象
文件都是在磁盘上的,我们需要把他放到内存中,
str = read(num) 读取文件放到字符串变量中其中的num 就是要读取的字节数不填为全读
seek()函数,修改访问文件位置.
file.seek(offset[,whence])
offset:偏移量
whence:从哪里
0表示从头开始计算,
1表示以当前位置为原点计算
2表示以文件末尾为原点进行计
需要注意,如果文件以a或a+的模式打开,每次进行写操作时,文件操作标记会自动返回到文件末尾。
myfile.seek(0,0) #回到了文件的开头
#如果说你操作到了一个文件没有的位置,那么
# ValueError: negative seek position -1
在文本文件中,没有使用b模式选项打开的文件,只允许从文件头开始计算相对位置,从文件尾计算时就会引发异常
#io.UnsupportedOperation: can't do nonzero end-relative seeks
#b模式 binary 二进制打开文件
str = readline() 顾名思义读取一行,把内容放到一个字符串变量中
Read until newline or EOF.
直到读到一个新行,或者EOF , EOF是文件结束的标志
#while (file !=EOF)
换行符的几个版本:
类Unix
windows
老版本的mac os
myfile.tell() 用来返回当前读取文件的指针位置
ell() method of _io.TextIOWrapper instance
Return current stream position.
strlist = readlines(size) 读取整个文件到字符串列表
字符串列表: [‘abc’,’cde’,’abasd’]
每次调用 readlines(size) 函数,会返回大约 200MB 的数据,而且所返回的必然都是完整的行数据,大多数情况下,返回的数据的字节数会稍微比 size 指定的值大一点(除最后一次调用 readlines(size) 函数的时候)。通常情况下,Python 会自动将用户指定的 sizehint 的值调整成内部缓存大小的整数倍
这个函数内部也就是通过循环调用readline()来实现的
确保一行:Read until newline or EOF.
pandas 熊猫们 python库数据分析大数据
v 空格不可见字符
>>> mystr = 'abc '
>>> mystr
'abc '
>>> mystr.strip()
'abc'
>>> mystr
'abc '
----------------------------------------------以上是python的读操作------------------------------------------------------
myfile.write(‘str’):在文件中写入字符串
当你使用写模式打开文件的时候,会将文件之前的内容清空掉,截断。
缓冲区:
当你从输入设备或者之后用一些重定向,写文件的方式,给磁盘上的文件写内容的时候,其实是写到了缓冲区中,缓冲区有大小,
- 当缓冲区满了之后,我们写的数据,才会真正的到达磁盘文件
- 我们可以使用 myfile.flush() 用来刷新缓冲区,
- 关闭文件,也会刷新缓冲区。
IO流 向屏幕输出,向文件输入 黑盘:对于数据在磁盘上的重复读写,普通硬盘
1、python中的写操作不会默认给你追加换行符
2、python中的写不会覆盖之前的内容,只有我们重新打开文件在使用 w 模式的时候,文件内容才会被覆盖
myfile.writelines()
在文件中可以写入一个字符串元组或者是字符串列表
如果列表或者元组中不是字符串:
TypeError: write() argument must be str, not int
writelines == readlines
他都是用write 和 readline 使用for循环的方式来实现的
with as 和open的区别
with as会自动帮你做内存释放工作,open不会
myfile = open(r'C:UsersAdministratorDesktop文件操作续集1.txt','a')
#append
append 打开文件不会覆盖掉之前的内容
#读写指针在末尾
print(myfile.tell())
tell函数用来查看文件读写指针位置
#如果你对一个单纯只使用a模式打开的文件采用读的操作
io.UnsupportedOperation: not readable
打开文件的权限参数,如果使用了 +号,那么意味着他同时具有了读写功能
r+可以读写兼备 打开文件不会覆盖掉之前的内容
r+/r 使用读模式打开文件,是默认不会创建文件的
w+可以读写兼备
w+/w 使用写模式打开文件,如果文件不存在则会创建文件,如果文件存在,则会覆盖文件之前的内容
a+ 也可以读写兼备,并且还是追加写
读写指针很重要
函数+文件操作实现一个帐号密码登录注册的功能
文件操作
15分钟之后看你们的代码;
21:17 + 15 21:32
input 获取用户从键盘的输入
split(char) 按照 char 分割字符串
var = var[:-1] 去掉回车