zoukankan      html  css  js  c++  java
  • 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] 去掉回车

     

     

  • 相关阅读:
    Python Flask数据库连接池
    Python Flask 配置文件
    Flask 通过扩展来实现登录验证
    Flask 的系统学习
    Python Flask装饰器登录验证
    Django 批量导入文件
    fedora25的免密码rsync服务配置
    linux强制拷贝避免输入yes方法
    linux系统web站点设置-http基础设置
    rsync用法详细解释
  • 原文地址:https://www.cnblogs.com/askDing/p/8525502.html
Copyright © 2011-2022 走看看