主要内容
一二维数据的打开、读写、关闭操作
csv格式的写入,读出
实例
注:其实csv 、excel形式的,后面用pandas更快
01
txt文件的打开读写关闭 举例 代码
打开文件推荐用with open("") as f:
等价于:f = open("")
f.close()
主要是with是一个过程,包含了开门和关门。
避免你写了开门,忘了写关门。
读文件内容
with open("D:\\PYECourse\\re\\info.txt","rt",encoding="utf-8")as f: print(f.readline()) #>>小明进了国企 with open("D:\\PYECourse\\re\\info.txt","rt",encoding="utf-8")as f: print(f.readlines()) #>>['小明进了国企\n', '小王考了北大\n', '小丽考取了清华\n', '小丁进了私企\n'] print(f.read().split()) #>>>['小明进了国企', '小王考了北大', '小丽考取了清华', '小丁进了私企']
这里的f是一个对象
我们发现 readline() 就是只读了一行
read()是全部读入变成了一个大的string
readlines()也是全部读入,但是一行行变成一个list
我们想把\n去掉 ,怎么操作?
read().split()
但是不能readlines().split() 因为readlines() 是读所有的行,存为了list,而list是没有split方法的。只有srting有。
【所有的方法,你要知道是对谁操作。是对srting还是对list】
谁.方法()
with open("D:\\PYECourse\\re\\info.txt","rt",encoding="utf-8")as f: for i in f.readlines(): #等同于 for i in f:也是一行行 print(i.strip())
这个是一行一行打印出来
如果直接是print(i)
写入文件
lt=["北京","东京","上海"]with open("D:\\PYECourse\\re\\info.txt","w+",encoding="utf-8")as f: f.write("王二考上了香港大学") f.writelines("香港很美") f.writelines(lt) #只是写入了并不分行且还没有空格 f.writelines(",".join(lt)) #中间加入了,逗号
写入只有wirte,writelines 没有什么writeline
原本的内容没有了,其次我们发现都在一行。。。。。
我们的诉求:新加的内容不覆盖原来内容
分行写入而不是在一行
我们看看打开模式
w 顾名思义 写 覆盖写
r read ;x 是啥?【一时想不起来】 a是append添加
b 是二进制 t是txt格式
lt=["北京","东京","上海"]with open("D:\\PYECourse\\re\\info.txt","a+",encoding="utf-8")as f: f.write("王二考上了香港大学\n") f.writelines("香港很美\n") f.writelines(lt) #只是写入了并不分行且还没有空格 f.writelines(",".join(lt)) #中间加入了,逗号
改一下代码
模式为a+
每一行写入的加入\n
但是以列表形式加入的怎么分行?可以在列表内容里加入\n
lt=["北京","东京","上海\n"]
02
思维导图 一维数据 二维数据csv
import pandas as pdfrom pandas import Series,DataFramescore = DataFrame(pd.read_excel("sales.xls")) #读表格 作为啥格式score.to_excel("sales3.xls") #导出到新表格print(score)
/