python 文件操作

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

 

换行符的几个版本:

\n     类Unix

\r\n   windows

\r     老版本的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库 数据分析 大数据

 

 

\n \t \v \r空格不可见字符

>>> mystr = 'abc\n'

>>> mystr

'abc\n'

>>> mystr.strip()

'abc'

>>> mystr

'abc\n'

 

----------------------------------------------以上是python的读操作------------------------------------------------------

 

 

myfile.write(str):文件中写入字符串

当你使用写模式打开文件的时候,会将文件之前的内容清空掉,截断。

 

缓冲区:

当你从输入设备或者之后用一些重定向,写文件的方式,给磁盘上的文件写内容的时候,其实是写到了缓冲区中,缓冲区有大小,

1、 当缓冲区满了之后,我们写的数据,才会真正的到达磁盘文件

2、 我们可以使用 myfile.flush() 用来刷新缓冲区,

3、 关闭文件,也会刷新缓冲区。

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不会

 

posted @ 2021-03-08 21:06  止一  阅读(216)  评论(0编辑  收藏  举报