zoukankan      html  css  js  c++  java
  • python对文件的读写

    文件 File
    什么是文件
    文件是用于数据存储和单位
    文件通常用来长期存储数据
    文件中的数据是以字节为单位进行顺序存储的

    文件的操作流程:
    1. 打开文件
    2. 读/写文件
    3. 关闭文件
    注:
    任何的操作系统,一个应用程序同时打开文件的数量有最大数限制

    文件的打开函数
    open(file, mode='rt/wt') 用于打开一个文件,返回此文件流对象,如果打开文件失败,则会触发OSError错误

    对文件的读/写:

    文件的关闭方法:
    F.close() # 关闭文件,释放系统资源


    文本文件操作
    操作模式:
    't'
    说明:
      1. 默认文件中存储的都为字符数据,在读写过程中会自动进行编解码操作,
      2. 文本文件以行为单位进行分隔,在python内部统一用' '作用为换行符进行分隔
      3. 对文本文件的读写操作需要用字符串(str) 进行数据操作

    各操作系统的换行符
    Linux换行符: ' '
    Windows 换行符: ' '
    新的Mac OS 换行符: ' '
    旧的Macintosh换行符: ' '(已不用了)

    这是对文件的读示例:

    zengsf.txt内容:
    张三 20 100
    李四 21 96
    小王 20 98
    ~          
    
    
    def read_info_txt():
        dic = []
        try:
            f = open("zengsf.txt")
            lines = f.readlines()       #一次性读取文件的所有数据,然后用for循环来进行遍历
            for x in lines:
                l = x.split(" ")
                dic.append({"name":l[0],"age":int(l[1]),"score":int(l[2])})
                print("%s今年%d岁,成绩是:%d"%(l[0],int(l[1]),int(l[2])))
            f.close()
            return dic
        except:
            print("文件打开失败")
    
    def print_info(L): 
        for d in L:
            print(d["name"],"今年",d["age"],"岁,成绩是:",d["score"])
    
    
    L = read_info_txt()
    print(L)
    print_info(L)
    
    打印结果:
    tarena@tedu:~/zengsf$ python3 exercise822.py
    张三今年20岁,成绩是:100
    李四今年21岁,成绩是:96
    小王今年20岁,成绩是:98
    [{'name': '张三', 'score': 100, 'age': 20}, {'name': '李四', 'score': 96, 'age': 21}, {'name': '小王', 'score': 98, 'age': 20}]
    张三 今年 20 岁,成绩是: 100
    李四 今年 21 岁,成绩是: 96
    小王 今年 20 岁,成绩是: 98

    对文件的读写示例:


    文本文件的写方法:
    模式字符串:"w"/"x"/"a"
    F.write(字符串)
    F.writelines(字符串列表)

    def input_data():
        l = []
        while True:
            x = input("请输入你要存入的数据:")
            if x == "":
                break
            l.append(x)
        return l                                     #将键盘输入的数据存在列表中
    
    
    #f = open("input.txt","rt")
    
    def write_data(l):
        try:
            f = open("input.txt", "w")               #创建或打开文件进行写操作
            for i in l:                              #循环遍历列表并将数据写入文件中
                f.write(i)
                f.write("
    ")
            f.close
        except OSError:
            print("存入数据失败")
                                                                 
    write_data(input_data())
    
    
    
    def read_data():
        l = []
        try:
            f = open("input.txt", "rt")              #读取刚刚写入的数据
            lines = f.readlines()
            for line in lines:
                s = line.rstrip("
    ")
                l.append(s)
            print("读取文件成功")
            return l
        except OSError:
            print("文件打开失败")
    
    def print_text(lst):
        for line_number ,s in enumerate(lst, 1):    #利用到了迭代器中的枚举方法
            print(line_number, ":", s)
    
    if __name__ == '__main__':
        print_text(read_data())
    
    输出结果:
                                             
    tarena@tedu:~/zengsf$ python3 exercise822.py
    请输入你要存入的数据:zengsf
    请输入你要存入的数据:shaofeng
    请输入你要存入的数据:fengshao
    请输入你要存入的数据:
    读取文件成功
    1 : zengsf
    2 : shaofeng
    3 : fengshao
  • 相关阅读:
    11-3 多道批处理系统
    URAL 1108 简单的树形dp背包问题
    POJ 2486 树形dp
    HDU 2242 连通分量缩点+树形dp
    POJ 3140 Contestants Division
    POJ 2378 Tree Cutting
    ZOJ 3201 树形背包问题
    POJ 1655 Balancing Act && POJ 3107 Godfather
    COJ 1351 Tree Counting 动态规划
    codeforces 219D 树形dp
  • 原文地址:https://www.cnblogs.com/zengsf/p/9520788.html
Copyright © 2011-2022 走看看