• python-文件操作


    文件操作步骤

    '''

    1、打开文件,得到文件句柄并赋值给1个变量

    2、通过文件句柄对文件进行操作

    3、关闭文件

    '''

    open函数的参数

    'r'    读

    'w'     写  每次重新生成一个新文件,若存在重名文件,覆盖

    'a'    追加,在原有文件末尾追加内容

    'b'    二进制(可添加到其它模式中使用,如‘rb’)

    '+'    读/写(可添加到其它模式中使用,如‘r+’)

    模式:r+,w+,rb,wb,ab,rb+,wb+,ab+。rb和ab可以快速的进行文件传输

    f = open('test.txt')#默认’r‘模式,只读。赋值给f的是内存对象(句柄、文件名、大小、内存中的起始位置),不是文件本身

    data1=f.read()

    data2=f.read()

    print data1

    print data2#只打印了data1,因为文件里有个指针,读到最后一行,再读一次,就从最后一行开始读,想从头开始,需要把指针挪到开头

    f.close()

    f.seek(0)#将光标挪到开头

    f.tell()#返回光标位置

    f.seekable()#判断光标是否可移动

    f.read()#一次读取文件所有内容,按字符读取,可设定读取多少,一个中文或一个字母都是一个字符

    f.readline()#一次读取一行内容存到内存中,当读取下一行内容时,上一行在内存中删除,适合大文件读取

    f.readlines()#一次读取文件所有内容存储到内存中,生成一个列表[],每行是一个元素,适合小文件读取

    #写操作不能在文件被关闭的情况下写入

    f.write()#将字符串写入文件,在行未添加

    f.writelines()#将列表写入文件,写在一行,在行尾添加

    f.name()#返回文件名

    f.encoding()#返回文件编码

    f.fileno()#返回文件句柄在内存中的位置

    f.flush()#刷新缓存到内存,强制存储到硬盘

    f.trunrcate()#不指定位置就是清空,指定就是清空位置后的内容,跟光标无关,都是从头开始

    with open('test.txt','r') as f:

      for i in f:

        print i

    相当于

    f = open('test.txt','r')

    for i in f:

      print i

    f.close()

    for line in f.readlines():

      print line

    #输出一行内容输出一行空格。。。。。,因为文件中内行内容后面都有换行符,如果不想输出空行,就需要使用下面的语句:print (line.strip())

    f = open('test.txt','w',encoding='utf8')

    #由于python3默认使用unicode编码,所以在写入文件时需要调用utf8,pycharm(默认编码方式utf8)才能读取正确,当读取文件时,文件时utf8,pycharm也是utf8,就不需要调用了

    修改文件内容

    思路:由于数据存储的关系,我们只能把文件1中的内容读取出来,修改后,存储到文件2中

    f2 = open('file2','w',encoding='utf8')

    f1 = open('file1','r')

    num = 0

    for line in f1:

      num +=1

      if num = 5:

        line = ''.join([line.strip(),'小鱼儿'])

      f2.write(line)

    f1 .close()

    f2.close()

  • 相关阅读:
    document.documentElement.clientHeight 和 $(window).height() 无法正确获取页面可视区高度
    day05python-fullstack-数据类型
    python-day05-fullstack-#判断数字,推出,使用占位符,格式化输出
    np.random.rand()函数与randn()
    numpy.dot
    Python数据分析----Matplotlib
    day03-python运算符----比较/赋值/逻辑/成员
    全栈开发-day02-python不明就里
    全栈开发-day01-字符编码与计算机容量
    matplotlib面向对象函数画图介绍:
  • 原文地址:https://www.cnblogs.com/liangyan-1989/p/8510458.html
Copyright © 2020-2023  润新知