zoukankan      html  css  js  c++  java
  • python第五堂课:文件的读写

    五一几天在搬家。帝都屁民的悲哀。

    接触过一些语言,shell,python,php等,发现基本上所有的语言类的教程和教学都是,输出,字符串,用户输入,文件控制,语句逻辑以及其他。

    前面已经提过,输出,字符串,用户输入了,今天来搞搞文件控制。

    文件控制整体可以分为以下几种动作,读,写,追加。

    python的读写都是通过一种file object 来实现的,

    当以读模式进行打开文件时,文件处于只读状态,不会变更文件内容。

    当以写模式进行打开文件时,如果有文件,则置空,再往里面写。没有对应的文件,则进行创建。

    当以追加模式打开文件时,如果有文件,则与文件末尾处,进行追加内容,没有对应文件的时候,则进行创建。

    例子1:文件的读。

    #!/bin/env python
    #-*- encodeing:utf-8 -*-
    from sys import argv
    #使用argv读取用户指定的目录, script,file
    = argv
    #建立文件对象,是打开file变量代表的文件。 fo
    = open(file)
    #以读模式打开文件通常是需要输出或这进行处理的。fo.read()是读出全部内容。 fo.read()
    #close是关闭fo这个文件对象。如果文件没有关闭之前,是可以重复进行操作的。 fo.close() 我使用python exp3.py file输出了以下内容
    'c'

    这里的open的用法是这样的:

    open(文件名称,[模式,buffer])

    buffer为缓冲区的大小,0为不缓冲,1为缓冲,>=1,则指定缓冲区的大小。

    例子2:文件的写。

    #!/bin/env python
    #-*- encodeing:utf-8 -*-
    from sys import argv
    script,file = argv
    #获取用户输入的文件名 fo
    = open(file,'w')
    #以下两行为输出到file中的两种方法,1使用文件对象中的write属性,将输入内容输出到文件当中,print 是我忘记从哪儿看到了。呵呵 fo.write(
    "hello world!\n")
    print >> fo,"hello world kairong"
    #这里如果你设置了缓冲区,如果缓冲区没有打满的情况下,这些输入作为临时输入储存在缓冲区中,可以通过fo.flush()强行写入。关闭文件时,会将缓冲区内容写入到文件。
    fo.close() #打开查看。 fo = open(file,'r') fo.read()


    使用方法是,python exp4.py file
    输出内容为:
    hello world!
    hello world kairong

    文件的追加方法,类同写的方式。这里就不举例了。

    就文件打开的模式说明下:

    r,只读模式,如果你没有选择任何打开模式则打开的是只读模式。

    w,写模式,

    a,追加模式。

    b,以二进制文件打开。

    关于文件对象的操作方法和方式有以下几种:

    fo.close() 关闭文件,顺便把缓冲区的内容写入文件,如果有缓冲区的话。

    fo.read()读取,如果read()内没加任何变量,则读出全部内容,如果类似与fo.read(1),则读取当前位置的一个字符。

    >>> file.read()
    'hello world\n'
    >>> file.seek(0,0)
    >>> file.read(1)
    'h'
    >>> file.read(2)
    'el'

    fo.readline()读取当前位置的一行内容。如果添加了任何参数。例如file.readline(1),则读取当前位置的一个字符。

    fo.readlines()将文件所有内容追加到元组当中,如果添加了任何参数,例如file.readlines(1),则仅读取当前位置的一行内容。

    我这里强调下,为什么要说当前位置呢,文件的读取是通过一种类似于游标的方式读取的,如果在文件头,则逐步读入,但是如果我想类似于读取文件最后一个字符的话,就可以将文件的游标重置到文件末尾。然后再继续。关于游标的使用,可以使用file.seek()进行操作,可以自己查看下seek的用法哦。file.tell()可以返回当前游标所处的位置。

    fo.write("abc")将文件写入文件(或者缓冲区。)

    fo.flush()将文件对象中的缓存写入文件。

    fo.close()将文件对象关闭,并将缓存写入文件。

    fo.truncate()清空文件。

  • 相关阅读:
    1360 奇怪的电梯(lift)
    1249 Lake Counting
    1330 【例8.3】最少步数
    1329 【例8.2】细胞
    1215 迷宫
    垃圾树
    vector
    1970:【15NOIP普及组】扫雷游戏
    1251:仙岛求药
    Python3+PCAN-USB基于PCAN-Basic二次开发实现上位机功能
  • 原文地址:https://www.cnblogs.com/sageskr/p/3053573.html
Copyright © 2011-2022 走看看