【python学习笔记】文件操作

1、文件打开:变量名=open(文件路径及文件名,模式)

2、文件打开模式:

r(只读模式,文件不存在报错) 
w(覆盖写模式:不存在创建文件,存在则覆盖文件)
x(创建写模式:不存在创建文件,文件存在则写失败)
a(追加写模式)
b(二进制文件模式)
t(文本文件模式)
+(在原有功能上增加同时读写功能,与r/w/x/a同时使用)
    f = open(r'C:UsershhPycharmProjectsOJsimplea.txt', 'r')
    f = open('C:/Users/hh/PycharmProjects/OJ/simple/a.txt', 'r+') #路径中为转义符,使用\或者/

3、文件读:

f.read(size=-1):从文件中读入整个文件内容,结果为字符串,参数可选,为读入前size长度的字符串
f.readline(size=-1):从文件中读入一行内容,结果为字符串,参数可选,为读入前size长度的字符串
f.readlines(hint=-1):从文件中读入所有的行,以每行为元素形成一个列表结果为字符串,参数可选,读入hint行
说明:文件打开后,对文件的读写有一个读取指针,当从文件中读入内容后,读取指针将向前进,再次读取的内容将从指针的位置开始
通过f.seek(0)介入文件的指针, 0返回文件开始 2返回文件结尾
    f = open('C:/Users/zz/PycharmProjects/OJ/simple/a.txt', 'r+') #路径中为转义符,使用\或者/ 
    print(f.read())
    f.seek(0)
    print(f.readline())
    f.seek(0)
    print(f.readlines())
    f.seek(0)
    print(f.readlines(1))
    print(f.readline())
    print(f.readline())
循环遍历文件
    f = open("b.txt", 'r') #相对路径
    for line in f:
        print(line)
    f.close()

4、文件写:

f.write(s)向文件写入字符串s,每次写入后,将会记录一个写入指针,该方法可以反复调用,将在写入指针后分批写入内容,直至文件被关闭
f.writelines(lines)直接将列表类型的各元素连接起来写入文件f
    f = open('f.txt', 'r+')
    print(f.read())
    f.write("离离原上草,一岁一枯荣,
")
    f.write("野火烧不尽,春风吹又生。
")
    f.seek(0)
    print(f.read())
    f.close()
    ls = ["离离原上草,一岁一枯荣,
", "野火烧不尽,春风吹又生。
"]
    f = open('g.txt', 'a+')
    f.writelines(ls)
    f.seek(0)
    print(f.readlines())
    f.close()

5、一维数据存储

    ls = ["北京", "上海", "广州"]
    f = open("g.csv", 'w')
    f.write(','.join(ls))

f = open("g.csv", 'r') ls = f.read() print(ls) ls_new = ls.split(",") f.close() print(ls_new)
    北京,上海,广州
   ['北京', '上海', '广州']

6、二维数据存储

    # 数据存储
    ls = [["城市", "上海", "广州"], ["GDP", "100", "200"], ["人口", "100", "200"]]
    f = open("gh.csv", 'w')
    for line in ls:
        f.write(','.join(line) + '
')
    f = open("gh.csv", 'r')

    # 数据恢复
    ls = []
    for line in f:
         ls.append(line.strip('
').split(','))
    print(ls)
    f.close()

    [['城市', '上海', '广州'], ['GDP', '100', '200'], ['人口', '100', '200']]

  





















原文地址:https://www.cnblogs.com/zhaoyujiao/p/15396070.html