zoukankan      html  css  js  c++  java
  • 文件读写笔记

    文本文件和二进制文件的区别

    用文本编辑器生成一个包含“中国是一个伟大的的国家!"的txt格式文本文件,命名为7.1txt。

    分别用文本文件方式和二进制文件方式读入,并显示输出效果

    代码:

    1 txtFile=open("7.1.txt","rt")#t表示文本文件方式
    2 print(txtFile.readline())
    3 txtFile.close()
    4 binFile=open("7.1.txt","rb")#b表示二进制文件方式
    5 print(binFile.readline())
    6 binFile.close()

    显示结果

    中国是个伟大的国家
    
    b'xd6xd0xb9xfaxcaxc7xb8xf6xcexb0xb4xf3xb5xc4xb9xfaxbcxd2
    '

    文件的打开和关闭

    <变量名>=open(<文件名>,<打开模式>)

    open函数提供的7种基本打开模式

    文件的打开模式 含义
    'r' 只读模式,如果文件不存在,返回异常FileNotFoundError,默认值
    'w' 覆盖写模式,文件不存在则创建,存在则完全覆盖
    'x' 创建写模式,文件不存在则创建,存在则返回异常FileExistsError
    'a' 追加写模式,文件不存在则创建,存在则在文件后追加内容
    'b' 二进制文件模式
    't' 文本文件模式,默认值
    '+'

    与r/w/x/a一起使用,在原功能基础上增加同时读写功能

    文件使用结束后要用close()方法关闭,释放文件的使用授权

    <变量名>.close()

    文件的读写

           当文件被打开后,根据打开方式不同可以对文件进行相应的读写操作当文件以文本文件的形式打开时,读写按照字符串方式,采用当前计算机使用的编码或指定的编码;当文件以二进制文件方式打开是,读写按照字节流方式。

    文件读取方法

    操作方法 含义
    <file>.read(size=-1) 从文件中读入整个文件的内容,如果给出参数,读入前size长度的字符串或字节流。
    <file>.readline(size=-1) 从文件中读入一行内容,如果给出参数,读入前size长度的字符串或字节流。
    <file>.readline(hint=-1) 从文件中读入所有行,以每行为元素形成一个列表,如果给出参数,读入前hint行
       

    文本文件逐行打印

    fname=input("请输入要打开的文件名")
    fo=open(fname,"r")
    for line in fo.readlines():
        print(line)
    fo.close()

    如果程序需要逐行处理文件内容,建议采用

    fname=input("请输入要打开的文件名")
    fo=open(fname,"r")
    for line in fo:
        print(line)#处理一行数据
    fo.close()

    文件内容写入方法

    方法 含义
    <file>.write(s) 向文件写入一个字符串或字节流
    <file>.writelines(lines) 将一个元素全为字符串的列表写入文件
    <file>.seek(offset) 改变当前文件操作指针的位置,offset的值:0——文件开头,1——当前位置,2——文件结尾

    向文件写入一个列表

    fname=input("请输入要写的文件")
    fo=open(fname,"w+")
    ls=["唐诗","宋词","元曲"]
    fo.writelines(ls)
    fo.seek(0)
    for line in fo:
        print(line)
    fo.close()

    显示结果

    请输入要写的文件test.txt
    唐诗宋词元曲
  • 相关阅读:
    Codeforces 451A Game With Sticks
    POJ 3624 Charm Bracelet
    POJ 2127 Greatest Common Increasing Subsequence
    POJ 1458 Common Subsequence
    HDU 1087 Super Jumping! Jumping! Jumping!
    HDU 1698
    HDU 1754
    POJ 1724
    POJ 1201
    CSUOJ 1256
  • 原文地址:https://www.cnblogs.com/SGzhang/p/10809747.html
Copyright © 2011-2022 走看看