python-文件操作

 

python 文件操作:

  • 打开文件
  • 读写文件

 

 

myfile = open(包含文件名的文件路径,打开权限)

会返回一个文件对象

 

文件都是在磁盘上的,我们需要把他放到内存中,

 

 

str = read(num) 读取文件放到字符串变量中其中的num 就是要读取的字节数不填为全读

 

 

seek()函数,修改访问文件位置.

 

file.seek(offset[,whence])

offset:偏移量

whence:从哪里

0表示从头开始计算,

1表示以当前位置为原点计算

2表示以文件末尾为原点进行计

需要注意,如果文件以aa+的模式打开,每次进行写操作时,文件操作标记会自动返回到文件末尾。 

 

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  向屏幕输出,向文件输入  黑盘:对于数据在磁盘上的重复读写,普通硬盘 

 

1python中的写操作不会默认给你追加换行符

2python中的写不会覆盖之前的内容,只有我们重新打开文件在使用 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] 去掉回车

 

 

原文地址:https://www.cnblogs.com/askDing/p/8525502.html