python_文件

文件 file
    什么是文件:
        1、文件是数据存储的单位
        2、文件通常用来长期存储数据
        3、文件中的数据是以字节为单位进行顺序存储的

 文件的操作流程:
        1、打开文件
        2、读写文件
        3、关闭文件
    任何的操作系统,一个应用程序同时打开文件的数量是有最大数限制的
    文件的打开函数 open
        open(file,mode=‘rt’)用于打开一个文件,返回此文件对应的文件流对象,如果打开失败,则会触发OSError错误!
    文件关闭方法:
        F.close()关闭,释放系统资源

 python文件读写的类型有两种:
        1、文本文件(text file)
        2、二进制文件(binary file)

 文本文件的操作
        默认文件中存储的都为字符数据,以行为单位进行分割,在pythonn内部统一用‘\n’作为换行符进行分割
        文本文件读写需要用字符串(str)进行数据读取和写入
    各种操作系统的换行符:
        Linux换行符 :“\n”
        Windows换行符:“\r\n”
        旧的Macintosh:“\r”
        新的Mac OS换行:“\n”
    文件中常用的方法:
        f.close()                          文件关闭(关闭后文件不能再读写,否则会发生ValueError错误)
        f.readline()                   读取一行数据,如果到达文件尾则返回空行,返回的是数据结尾会有一个“\n”符号

try:
    f = open("info.txt")
    while True:
        s = f.readline()
        if s == '':
            break
        if s[-1] == "\n":#此处解决双换行
            print(">>>",s[:-1])
        else:
            print(">>>",s)#最后一行没有“\n”符号
except OSError:
    print("打开文件失败!")

        f.readlines(max_chars=-1)  返回每行字符串的列表,max_chars为最大字符串(或字节数)

   f.read(size=-1)                从一个文件中最多读取size的字符,不管是1个中文还是1个字母都代表1
        f.writelines(lines)             每行字符串的列表,没有返回值

f = open("mynote.txt","w")
L = ["我是第一行\n","我是第二行"]#列表的每个元素后面要加\n换行符
f.writelines(L)
f.close()

   f.write(text)         写一个字符串到文件流中,返回写入的字符数

f = open("mynote.txt","w")
a = f.write("hello")#把字符串写入文件的同时返回一个int类型的数,次数代表字符串的长度
print(type(a),a) # <class 'int'> 5
f.close()


        f.flush()                      把写入文件对象的缓存内容写入到磁盘

mode 模式字符的含义
        "r"        以只读方式打开(默认)
        "w"        以只写方式打开,删除原有文件内容,如果文件不存在,则创建
        "x"        创建一个新文件,并以写模式打开这个文件,如果文件存在,则产生”FileExistsError“错误
        "a"        以只写方式打开一个文件,如果有原文件则追加文件末尾
        "b"        用二进制模式打开
        "t"        文本文件模式打开(默认)
        "+"        为更新内容打开一个磁盘文件(可读可写)

   "a"        以只写方式打开一个文件,如果有原文件则追加文件末尾
        "b"        用二进制模式打开
        "t"        文本文件模式打开(默认)
        "+"        为更新内容打开一个磁盘文件(可读可写)
        "rt或tr"  缺省模式
        "w+b"   可以实现二进制随机读写,当打开文件时,文件内容将被清空
        "r+b"    以二进制读和更新模式打开文件,打开文件时不会清空文件内容
        "r+"      以文本读和更新模式打开文件,打开文件时不会清空文件内容

  文本文件的迭代读取:
          open()函数返回来的文件流对象是可迭代对象

f = open("abc.txt")#f是一个可迭代对象,可以使用iter()和next()函数读取数据
for line in f:#每次读取一行,相当于line = f.readline()
    print(line)
f.close()

  标准输入输出文件:
      模块名:sys
        sys.stdin        (默认为标准键盘输入设备)
            ctrl +d 输入文件末尾标识符(linux和苹果系统下)

import sys
s = sys.stdin.readline()
print("从键盘读取的第一行是:",s)
s = sys.stdin.read()#Ctrl+d是文件末尾的标识符,不会读取第一行的数据,因为被readline读取过了
print("read读取的信息是",s)
s = sys.stdin.readlines()
print("readlines读取的信息是:",s)
print("程序退出")

        sys.stdout        (默认为屏幕终端)
        sys.stderr        (默认为屏幕终端)
   标准文件不需要打开和关闭就可以使用

import sys
a = sys.stdout.write("hello\n")
print(type(a),a)#<class 'int'> 6
b = sys.stdout.write("Error\n")
print(type(b),b)#<class 'int'> 6


       

猜你喜欢

转载自www.cnblogs.com/xdl-smile/p/9344789.html