zoukankan      html  css  js  c++  java
  • python3 文件

    一.创建和打开文件open(filename, mode)

    1.python中windows在路径名中既可以接受斜线(/),也可以接受双反斜线(\),也可以双斜线(//),就是不能单反斜线()

    2.filename 变量是一个包含了你要访问的文件名称的字符串值

    3.mode决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)

    1 f=open('wenj.txt','w') #打开文件
    2 f.write('python')        #操作文件
    3 f.close()                    #关闭文件
    4 ----------------------------------------------
    5 #在当前目录创建了wenj.txt文件
    6 #在创建的wenj。txt中
    7 python
    open

     4.文本文件:txt、doc、xls...         二进制文件:图片、视频、音乐

    5.默认是读取utf-8编码的文本文件

    二.文件对象的方法

    1.file.name#读取文件名称

    2.file.read(size)用于从文件读取指定的字节数,如果未给定或为负则读取所有

     1 #file.read(size)用于从文件读取指定的字节数,如果未给定或为负则读取所有
     2 fread=open('wenj.txt','r+')
     3 # size 是一个可选的数字类型的参数
     4 print(fread.read(8))#读取一定数目的数据, 然后作为字符串或字节对象返回
     5 print(fread.read())#当 size 被忽略了或者为负, 那么该文件的所有内容都将被读取并且返回
     6 #第二次读取时,不会读取已经读取过的内容
     7 fread.close()
     8 ------------------------------------------------------------------
     9 python
    10 s
    11 daaaaaaaaaaaaaaa
    12 faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    f.read

    3.f.readline(size)从文件读取整行,包括 " " 字符

     1 #readline() 方法用于从文件读取整行,包括 "
    " 字符。
     2 freadline=open('wenj.txt','r')
     3 print(freadline.readline())#读取文件可以被读取的文件的第一行
     4 print(freadline.readline())#读取文件可以被读取的文件的第一行
     5 print(freadline.readline(4))#读取文件可以被读取的文件的第一行,可以指定读取的长度
     6 print(freadline.readline())#读取文件可以被读取的文件的第一行
     7 freadline.close()
     8 -------------------------------------------------------------------------
     9 python
    
    10 
    11 sdaaaaaaaaaaaaaaa
    12 
    13 faaa
    14 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    f.readline

    4.f.readlines(size)读取所有行(直到结束符 EOF)并返回列表,(自动地将文件按换行符进行处理,将处理好的每一行组成一个列表返回)

     1 # readlines() 方法用于读取所有行(直到结束符 EOF)并返回列表
     2 f=open('wenj.txt','r+')
     3 print(f.readlines())
     4 print(f.readlines())#返回空列表
     5 f.close()
     6 
     7 # 如果设置可选参数 sizehint, 则读取指定长度的字节, 并且将这些字节按行分割
     8 f=open('wenj.txt','r+')
     9 print(f.readlines(10))
    10 print(f.readlines(3))
    11 f.close()
    12 
    13 
    14 f=open('wenj.txt','r+')
    15 for line in f.readlines():#依次读取每行
    16     line=line.strip()     #去掉每行头尾空白
    17     print(line)
    18 f.close()
    19 ------------------------------------------------------------------------------
    20 ['python\n
    ', 'sdaaaaaaaaaaaaaaa
    ', 'faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    ']
    21 []
    22 ['python\n
    ', 'sdaaaaaaaaaaaaaaa
    ']
    23 ['faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    ']
    24 python
    
    25 sdaaaaaaaaaaaaaaa
    26 faaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    f.readlines()

    5.f.write(str) 将 str写入到文件中, 然后返回写入的字符数

    1 # write() 方法用于向文件中写入指定字符串
    2 f=open('wenj.txt','w')
    3 # 如果要写入一些不是字符串的东西, 那么将需要先进行转换str()
    4 print(f.write(r'python
    '))#写入内容覆盖原内容,wenj.txt中python
    
    5 #返回的是写入的字符串中字符的个数8
    6 f.close()
    7 -------------------------------------------------------------------
    8 8
    f.write()

    6.f.tell() 方法返回文件的当前位置,即文件指针当前位置

     1 #wenj.txt:       python sds
     2 # f.tell() 返回文件对象当前所处的位置, 它是从文件开头开始算起的字节数
     3 f=open('wenj.txt','r+')
     4 print(f.tell())
     5 print(f.read(3))
     6 print(f.tell())
     7 f.close()
     8 -------------------------------------------------------------------------
     9 0
    10 pyt
    11 3
    f.tell()

    7.f.seek(offset, from_wha)移动文件读取指针到指定位置,文本文件的操作模式下(不带b)只能写0;如果想要写1或2,必须在二进制文件操作模式下(带b)

     1 #python sds
     2 
     3 #f.seek(offset, from_what)改变文件当前的位置
     4 #offset开始的偏移量,也就是代表需要移动偏移的字节数
     5 #from_what可选,默认值为 0。给offset参数一个定义,表示要从哪个位置开始偏移;
     6 # 0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起
     7 f=open('wenj.txt','rb+')
     8 print(f.seek(5))#移动到文件的第五个字节,无返回值
     9 print(f.read(3))#读取三个字节
    10 print(f.seek(1))#移动到文件的第1个字节
    11 print(f.read(1))#读取一个字节
    12 print(f.seek(-1,2))
    13 # 在文本文件中,没有使用b模式选项打开的文件,只允许从文件头开始计算相对位置,从文件尾计算时就会引发异常
    14 print(f.read(1))
    15 -------------------------------------------------------------------------
    16 5
    17 b'n s'
    18 1
    19 b'y'
    20 9
    21 b's'
    f.seek()

    8.f.close()关闭文件并释放系统的资源,清空缓冲区的数据内容到磁盘文件;f.flish()立即清空缓冲区的数据内容到磁盘文件

    9.with关键字

    1 # 当处理一个文件对象时, 使用 with 关键字是非常好的方式。在结束后, 它会帮你正确的关闭文件。
    2 # 而且写起来也比 try - finally 语句块要简短:
    3 # 相当于f=open('wenj.txt','rb+')
    4 with open('wenj.txt','rb+') as f:
    5     print(f.read())
    6 --------------------------------------------------------------
    7 b'python sds'
    with open() as

    10.for in可以用来遍历f本身,也可以遍历行列表

    11.容错处理:readable和writable方法

    1 f=open('wenj.txt','a')
    2 if f.readable():#判定是否可读,如果没有这行则会报错
    3     content=f.readlines()
    4     for i in content:
    5         print(i,end=' ')
    6 f.close()
    7 -----------------------------------------------------
    readable

    12.一般来说,一般文件特别大的时候,可以使用readline:按行加载,可节省内存,但相对性能较低;而read和readlines虽然占用内存,但处理性能较高

    三.文件方法

    补充1:

     1 txt=open('write.txt','w')
     2 try:
     3     for i in range(10):
     4         10/(i-5)
     5         txt.write(str(i)+'
    ')
     6 except Exception:
     7     print('error:',i)
     8 finally:
     9     txt.close()
    10 ------------------------------------------------------
    11 error: 5
    文件写入异常

     补充2:

    os模块可以对文件进行重命名,创建,删除,目录等操作

  • 相关阅读:
    设计模式课程 设计模式精讲 2-1 本章导航
    数字 日期 格式化方法
    jQuery事件委托之Safari失效的解决办法--摘抄
    css3鼠标点击穿透--摘抄
    字符串日期转换为周
    在echars上发布的半圆环形图
    一些框架源码中的代码
    webSQL 增删改查
    Android 根据版本号更新
    Android 永久保存简单数据
  • 原文地址:https://www.cnblogs.com/yu-liang/p/8619769.html
Copyright © 2011-2022 走看看