zoukankan      html  css  js  c++  java
  • python file operation

     

    file.open(name[,mode[,buffering]])

    模式的类型有:

    r  默认只读

    w     以写方式打开,如果文件不存在则会先创建,如果文件存在则先把文件内容清空(truncate the file first)
    a     以追加模式打开 (从 EOF 开始, 必要时创建新文件)用seek也无用。打开的文件也是不能读的。
    r+     以读写模式打开,如果文件不存在则报错,文件可读可写,可写到文件的任何位置
    w+    以读写模式打开 (参见 w ),和r+不同的是,它会truncate the file first
    a+     以读写模式打开 (参见 a ),和r+不同的是,它只能写到文件末尾
    rb      以二进制读模式打开
    wb     以二进制写模式打开 (参见 w )
    ab      以二进制追加模式打开 (参见 a )
    rb+    以二进制读写模式打开 (参见 r+ )
    wb+   以二进制读写模式打开 (参见 w+ )
    ab+    以二进制读写模式打开 (参见 a+ )

    file.read([size]) size未指定则返回整个文件,如果文件大小>2倍内存则有问题.f.read()读到文件尾时返回""(空字串)

    file.readline( ):表示逐行读取,返回字符串

    file.readlines(): 读取所有行,返回字符串列表

    file.readline([size]) 返回包含size行的列表,size 未指定则返回全部行

    file.write() 接收字符串并且写入到文件中

    file.writelines() 接收一个字符串列表作为参数,将他们写入到文件中,换行符不会自动的加入,因此,需要显式的加入换行符

    file.tell() 返回一个整数,表示当前文件指针的位置

    file.seek(偏移量,[起始位置])

    用来移动文件指针
    偏移量:单位:比特,可正可负
    起始位置:

    0-文件头,默认值

    1-当前位置

    2-文件尾

    f.truncate() 清空文件

    file.close() 关闭文件

    for line in f: print line #通过迭代器访问

    Data descriptors defined here:

    closed
    True if the file is closed

    encoding
    file encoding

    errors
    Unicode error handler

    mode
    file mode ('r', 'U', 'w', 'a', possibly with 'b' or '+' added)

    name
    file name

    newlines
    end-of-line convention used in this file

    softspace
    flag indicating that a space needs to be printed; used by print 


    >>> fo=open("test.txt","r") >>> fo.name 'test.txt' >>> fo.mode 'r' >>> fo.closed False >>> fo.encoding >>> fo.errors >>> fo.newlines >>> fo.softspace 0
    # -*- coding:utf-8 -*-
    
    from sys import argv
    
    script,filename=argv
    
    txt=open(filename)
    
    print "Here's your file %r:" % filename
    print txt.read()
    
    print "Type the filename again:"
    file_again=raw_input(">>")
    
    txt_again=open(file_again)
    
    print txt_again.read()
    
    > python ex15.py ex15_sample.txt
    Here's your file 'ex15_sample.txt':
    This is stuff I typed into a file.
    It is really cool stuff.
    Lots and lots of fun to have in here.
    Type the filename again:
    >>1.txt
    test for sys.argv
    >>> open("1.txt").read()
    'test for sys.argv'
    >>> f=open("test.txt","w")
    >>> f.write("Hello 
    ")
    >>> f.write("python!")
    >>> f.close()
    >>> f=open("test.txt","r")
    >>> f.read()
    'Hello 
    python!'
    
    ##指针移动
    >>> f=open("test.txt","r")
    >>> f.read(3)
    'Hel'
    >>> f.read(3)
    'lo '
    >>> f.read(3)
    '
    py'
    >>> f.read(3)
    'tho'
    >>> f.read(3)
    'n!'
    >>> f.read(3)
    ''
    
    >>> f=open("test.txt","r")
    >>> f.readline()
    'Hello 
    '
    >>> f.readline()
    'python!'
    >>> f.readline()
    ''

    >>> f=open("test2.txt","w")
    >>> f.writelines(["first line","+
    ","second line"])
    >>> f.close()
    >>> f=open("test2.txt","r")
    >>> f.readline()
    'first line+
    '
    >>> f.readline()
    'second line'
    >>> f.readline()
    ''
    >>> f=open("test.txt",'a+')
    >>> f.readline()
    'dsadsa 
    '
    >>> f=open("test.txt",'w+')
    >>> f.truncate()
    >>> f.close()
    >>> f=open("test.txt",'a+')
    >>> f.readline()
    ''
    # -*-coding:utf-8 -*-
    
    from sys import argv
    from os.path import exists
    
    script,from_file,to_file =argv
    
    print "Copying from %s to %s" % (from_file,to_file)
    
    in_file=open(from_file)
    indata=in_file.read()
    
    print "The input file is %d bytes long" % len(indata)
    
    print "Does the output file exist? %r" % exists(to_file)
    print "Ready,hit RETURN to continue,CTRL-C to abort."
    raw_input(">>")
    
    out_file=open(to_file,"w")
    out_file.write(indata)
    
    print "Alright, all done."
    
    out_file.close()
    in_file.close()
    
    
    > python ex17.py test.txt test2.txt
    Copying from test.txt to test2.txt
    The input file is 14 bytes long
    Does the output file exist? False
    Ready,hit RETURN to continue,CTRL-C to abort.
    >>
    Alright, all done.
    > python
    Enthought Canopy Python 2.7.11 | 64-bit | (default, Jun 11 2016, 11:33:47) [MSC v.1500 64 bit
    Type "help", "copyright", "credits" or "license" for more information.
    >>> f=open("test2.txt")
    >>> f.read()
    'dsads
    aaa
    ddd
    '
    >>>
    >>> fo=open("test.txt","r")
    >>> fo.readline()
    'dsads
    '
    >>> fo.tell()
    7L
    >>> fo.seek(0,0)
    >>> fo.readline()
    'dsads
    '
    >>> fo.tell()
    7L
    >>> fo.seek(8,0)
    >>> fo.readline()
    'aa
    '
    >>> fo.seek(7,0)
    >>> fo.readline()
    'aaa
    '
    >>> fo.seek(0,2)
    >>> fo.tell()
    17L
    >>> fo.seek(-8,2)
    >>> fo.tell()
    9L
    >>> fo.read()
    'a
    ddd
    '
  • 相关阅读:
    web开发之mysql优化总结
    使用webpack构建属于你自己的npm包
    jwt在node中的应用与实践
    zookeeper启动失败解决办法(3.5.7)
    oracle表分区详解
    oracle job
    ORACLE恢复误删的表数据
    go mod使用 踏雪扬尘
    sparkcore 学习 踏雪扬尘
    GO语言基本知识 踏雪扬尘
  • 原文地址:https://www.cnblogs.com/dadadechengzi/p/6201490.html
Copyright © 2011-2022 走看看