美文网首页
Python :open文件操作,配合read()使用!

Python :open文件操作,配合read()使用!

作者: 公子小白123 | 来源:发表于2020-02-07 11:45 被阅读0次

    open/文件操作

    f=open('/tmp/hello','w')

    #open(路径+文件名,读写模式)

     如何打开文件

          handle=open(file_name,access_mode="r")

      file_name 变量包含我们希望打开的文件的字符串名称,access_mode 中的'r'表示读取,‘w’表示写入,'a'表示添加,其它可能用到的标实还有‘+’表示读写,‘b’表示2进制访问,如果未提供access_mode,默认为“r”.

    如果open()成功,一个文件对象句柄会被返回。

    filename=raw_input('enter file')

    fobj

    =open(filename,'r')

    for eachline infobj:

    printeachline,

    fobj.close()

    #还记得 print 后面跟的“,”是什么意思吧,表示【每次打印都不换行,而是间隔空格】

     file()内建函数它的功能等于open(),但是可以看出,他是个文件工厂(生成文件对象),类似于int()生成整型对象,dict()生成字典对象,后面会学习

    #读写模式:r只读,r+读写,w新建(会覆盖原有文件),a追加,b二进制文件.常用模式

    如:'rb','wb','r+b'等等

    读写模式的类型有:

    rU 或 Ua 以读方式打开, 同时提供通用换行符支持 (PEP 278)

    w     以写方式打开,

    a     以追加模式打开 (从 EOF 开始, 必要时创建新文件)

    r+     以读写模式打开

    w+     以读写模式打开 (参见 w )

    a+     以读写模式打开 (参见 a )

    rb     以二进制读模式打开

    wb     以二进制写模式打开 (参见 w )

    ab     以二进制追加模式打开 (参见 a )

    rb+    以二进制读写模式打开 (参见 r+ )

    wb+    以二进制读写模式打开 (参见 w+ )

    ab+    以二进制读写模式打开 (参见 a+ )

    注意:

    1、使用'W',文件若存在,首先要清空,然后(重新)创建,

    2、使用'a'模式 ,把所有要写入文件的数据都追加到文件的末尾,即使你使用了seek()指向文件的其他地方,如果文件不存在,将自动被创建。

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

    file.readline() 返回一行

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

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

    f.write("hello\n") #如果要写入字符串以外的数据,先将他转换为字符串.

    f.tell() 返回一个整数,表示当前文件指针的位置(就是到文件头的比特数).

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

    用来移动文件指针

    偏移量:单位:比特,可正可负

    起始位置:0-文件头,默认值;1-当前位置;2-文件尾

    f.close() 关闭文件

    Code:

    #!/usr/bin/env python

    # Filename: using_file.py

    poem='''\Programming is funWhen the work is doneif you wanna make your work also fun: use Python!'''

    f=file('poem.txt','w') # open for 'w'riting

    f.write(poem) # write text to file

    f.close() # close the file

    f=file('poem.txt')

    # if no mode is specified, 'r'ead mode is assumed by default

    while True:

    line=f.readline()

    if len(line)==0: # Zero length indicates EOF

    break

    print line,

    # Notice comma to avoid automatic newline added by Python

    f.close()

    # close the file

    read()使用及用法

    我们谈到“文本处理”时,我们通常是指处理的内容。Python 将文本文件的内容读入可以操作的字符串变量非常容易。文件对象提供了三个“读”方法: .read()、.readline() 和 .readlines()。每种方法可以接受一个变量以限制每次读取的数据量,但它们通常不使用变量。 .read() 每次读取整个文件,它通常用于将文件内容放到一个字符串变量中。然而 .read() 生成文件内容最直接的字符串表示,但对于连续的面向行的处理,它却是不必要的,并且如果文件大于可用内存,则不可能实现这种处理。

    .readline() 和 .readlines() 非常相似。它们都在类似于以下的结构中使用:

    fh = open('c:\\autoexec.bat') for linein fh.readlines(): print line

    .readline() 和 .readlines() 之间的差异是后者一次读取整个文件,象 .read() 一样。.readlines() 自动将文件内容分析成一个行的列表,该列表可以由 Python 的 for ... in ... 结构进行处理。另一方面,.readline() 每次只读取一行,通常比 .readlines() 慢得多。仅当没有足够内存可以一次读取整个文件时,才应该使用 .readline()。

    seek的使用方法

    seek():移动文件读取指针到指定位置

    tell():返回文件读取指针的位置

    seek()的三种模式:

        (1)f.seek(p,0)  移动当文件第p个字节处,绝对位置

        (2)f.seek(p,1)  移动到相对于当前位置之后的p个字节

        (3)f.seek(p,2)  移动到相对文章尾之后的p个字节

    最后:

    • close – 关闭文件。跟你编辑器的 文件 -> 保存.. 一个意思。

    • read – 读取文件内容。你可以把结果赋给一个变量。

    • readline – 读取文本文件中的一行。

    • truncate – 清空文件,请小心使用该命令。

    • write(stuff) – 将 stuff 写入文件。

    相关文章

      网友评论

          本文标题:Python :open文件操作,配合read()使用!

          本文链接:https://www.haomeiwen.com/subject/bbqczctx.html