zoukankan      html  css  js  c++  java
  • Python基础篇【第七篇】:文件操作

    open函数

    用于文件处理,使用方式:

    #file = open('文件路径','操作方式','指定以什么字符集方式打开')
    
    file = open("ha.log",'r',encoding='utf-8')

    操作方法:

    序号方法及描述
    1

    file.close()

    关闭文件。关闭后文件不能再进行读写操作。

    2

    file.flush()

    刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。

    3

    file.fileno()

    返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上。

    4

    file.isatty()

    如果文件连接到一个终端设备返回 True,否则返回 False。

    5

    file.next()

    返回文件下一行。

    6

    file.read([size])

    从文件读取指定的字节数,如果未给定或为负则读取所有。

    7

    file.readline([size])

    读取整行,包括 " " 字符。

    8

    file.readlines([sizehint])

    读取所有行并返回列表,若给定sizeint>0,返回总和大约为sizeint字节的行, 实际读取值可能比sizhint较大, 因为需要填充缓冲区。

    9

    file.seek(offset[, whence])

    设置文件当前位置

    10

    file.tell()

    返回文件当前位置。

    11

    file.truncate([size])

    截取文件,截取的字节通过size指定,默认为当前文件位置。 

    12

    file.write(str)

    将字符串写入文件,没有返回值。

    13

    file.writelines(sequence)

    向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。

    文件操作:打开文件、操作文件、关闭文件,在对文件操作的时候默认的方式是只读,在Python内部打开文件的时候是以二进制的方式打开的,通过解释器输出以人能看的懂的方式输出。

     1 #只读,r
     2 f = open('ha.log','r')
     3 f.write('fasdf')
     4 f.close()
     5 
     6 #w,只写模式[不可读;文件不存在则创建;存在则清空内容]
     7 f = open('ha1.log','w')
     8 f.write("123")
     9 f.close()
    10 
    11 #x,只写模式[不可读;不存在则创建,存在则报错]
    12 f = open("ha2.log",'x')
    13 f.write("456")
    14 f.close()
    15 
    16 #a,追加模式[不可读;不存在则创建;存在则之追加内容]
    17 f = open('ha3.log','a')
    18 f.write("12345")
    19 f.close()
    20 
    21 #字节的方式打开
    22 #1,只读,rb
    23 f = open('ha.log','rb')
    24 data = f.read()
    25 f.close()
    26 print(type(data))
    27 print(data)
    28 str_data = str(data,encoding="utf-8")
    29 print(str_data)
    30 
    31 #2.只写
    32 f = open('ha.log','wb')
    33 str_data = "中国人"
    34 bytes_data = bytes(str_data,encoding='utf-8')
    35 # f.write(bytes("中国",encoding='utf-8'))
    36 f.write(bytes_data)
    37 f.close()
    38 
    39 #r+读,写
    40 f = open('ha.log','r+')
    41 #指针0,起始位置
    42 print(f.tell())
    43 data = f.read()
    44 print(type(data),data)
    45 f.write("德国人")
    46 data = f.read()
    47 print(type(data),data)
    48 print(f.tell())
    49 f.close()
    50 
    51 #w+,先清空,在写的之后,就可以读了,写过之后指针到最后
    52 f = open('ha.log','w+')
    53 f.write("abc")
    54 f.seek(0)
    55 data = f.read()
    56 f.close()
    57 print(data)
    58 
    59 # x+如果文件就会报错,其他和w+一样
    60 
    61 #a+
    62 # a,打开的同事,指针已经移动到最后
    63 f = open('ha.log','a+')
    64 # print(f.tell())
    65 data = f.read()
    66 print(f.tell())
    67 f.seek(0)
    68 print(f.tell())
    69 data = f.read()
    70 f.close()
    71 print(data)
    72 
    73 # seek(num)调整位置
    74 # tell()查看位置
    75 # 
    76 # 读取所有行
    77 f = open('ha.log','r')
    78 for line in f:
    79     print(line)
    80 
    81 #with,支持同时打开两个文件(python2.7之后)
    82 with open('ha.log','r') as f, open('ha1.log','r') as f2:
    83     data = f.read(),f2.read()
    84     print(data)

    常用方法:

     1 def close(self, *args, **kwargs): # real signature unknown
     2         '''关闭文件'''
     3         pass
     4 
     5     def detach(self, *args, **kwargs): # real signature unknown
     6         '''分离?'''
     7         pass
     8 
     9     def fileno(self, *args, **kwargs): # real signature unknown
    10         '''文件描述'''
    11         pass
    12 
    13     def flush(self, *args, **kwargs): # real signature unknown
    14         '''刷新文件内部缓冲区'''
    15         pass
    16 
    17     def isatty(self, *args, **kwargs): # real signature unknown
    18         '''判断文件是否是同意tty设备?'''
    19         pass
    20 
    21     def read(self, *args, **kwargs): # real signature unknown
    22         '''读文件,指定字节数据'''
    23         pass
    24 
    25     def readable(self, *args, **kwargs): # real signature unknown
    26         '''是否可读'''
    27         pass
    28 
    29     def readline(self, *args, **kwargs): # real signature unknown
    30         '''仅读取一行'''
    31         pass
    32 
    33     def seek(self, *args, **kwargs): # real signature unknown
    34         '''指定文件中指针的位置'''
    35         pass
    36 
    37     def seekable(self, *args, **kwargs): # real signature unknown
    38         '''指针是否可操作'''
    39         pass
    40 
    41     def tell(self, *args, **kwargs): # real signature unknown
    42         '''获取指针位置'''
    43         pass
    44 
    45     def truncate(self, *args, **kwargs): # real signature unknown
    46         '''截断数据,仅保留指定之前的数据'''
    47         pass
    48 
    49     def writable(self, *args, **kwargs): # real signature unknown
    50         '''是否可写'''
    51         pass
    52 
    53     def write(self, *args, **kwargs): # real signature unknown
    54         '''写内容'''
    55         pass
  • 相关阅读:
    被initramfs的一个要求搞死
    【转】网卡驱动注册到PCI总线这一过程的分析
    PCI总线
    diff和patch使用指南
    Windows 平台下构建Android 开发环境
    linux 如何使用大于2T的块设备
    PCI设备驱动 三
    CFI Flash, JEDEC Flash ,Parellel Flash, SPI Flash, Nand Flash,Nor Flash的区别和联系
    使用initramfs启动Linux成功
    glibc 各个库作用介绍
  • 原文地址:https://www.cnblogs.com/allan-king/p/5478556.html
Copyright © 2011-2022 走看看