读txt文件
# 读txt文件
def write_txt(file_name,content):
with open(file_name,'a') as f:
f.write(content)
def read_txt(file_name):
with open(file_name,'r') as f:
result=f.read().splitlines()#读取所有行,以列表形式返回,每行作为列表的一个成员,后面自动去掉\n
return result
# print(result)
if __name__ == '__main__':
write_txt('1.txt','aaaa')
print(read_txt('1.txt'))
读csv文件
# 读csv文件
import csv
def wirte_csv(file_name,content):
with open(file_name,'a',encoding='utf8') as f:
obj=csv.writer(f)
obj.writerow(content)
def read_csv(file_name):
result=[]
with open(file_name,'r',encoding='utf8') as f:
obj=csv.reader(f)
for i in obj:
result.append(i)
return result
if __name__ == '__main__':
wirte_csv('2.csv',['333','sb','s'])
print(read_csv('2.csv'))
print(read_csv('2.csv')[1][1])
# csv文件创建:
# 1、创建一个excel表,录入数据
# 2、将excel表另存为UTF-8格式的带逗号分割符的csv文件
# 3、用notepad++超级记事本文件将csv文件转码为utf-8
# 如何读取csv文件数据:
# with open(r"C:\Users\ming\Desktop\data_excel.csv","r",encoding="utf-8") as f:
# data= csv.reader(f)
import csv
with open("C:\\Users\\ming\\Desktop\\data_excel.csv","r",encoding='utf-8') as f:
data= csv.reader(f)
# print(data)
# 从data中获取每行数据,其实是一个列表
for d in data:
print(d[2])
"""
csv 文件写入数据
1、新建Excel文件,写入测试数据(根据测试用例中分离处理数据部分,有几个
2、将文件另存为utf逗号分割符csv
3、将csv转码为ytf-8格式
4文件路径问题
./ 相当于。。。。。text目标/
获取当前文件的目录:
os.path.dirname(__file__)
# 当前文件的上级目录
path2 =os.path.dirname(os.path.dirname(__file__))
"""
import csv
import os
# E:/python code/jiekou/text/data_csv.csv
path1 =os.path.dirname(__file__)+r"/data_csv.csv"
print(path1)
# 当前文件的上级目录
# E:/python code/jiekou
path2 =os.path.dirname(os.path.dirname(__file__))
print(path2)
# with open(r"","r",encoding="utf-8") as f:
# data =csv.reader(f)
# for d in data:
# print(d)
读Excel文件
"""
如果想在python中处理excel文件
xlrd模块使用:
1、安装xlrd模块
2、导包
3、使用xlrd打开Excel文件
4、读取其中某一个sheet页数据,索引号从0开始
5、获取当前sheet页某一行/列数据:row_values(0)/col_values(0)
6、获取行数或者列数,辅助遍历:nrows、ncols
7、使用for循环遍历每一个单元格数据
for i in range(nrow):
# print(table.row_values(i))
print(table.row_values(i)[1])
"""
import xlrd
import pandas as pd
data = xlrd.open_workbook(r"C:\Users\ming\Desktop\data_excel.xlsx")
# 获取索引为0的一个sheet页,也就是sheet1
# table = data.sheet_by_name("Sheet1")
table =data.sheets()[0]
# print(table.row_values(0))
# 行数
nrow = table.nrows
# 列数
ncol = table.ncols
# print(nrow)
for i in range(nrow):
# 打印所有行
# print(table.row_values(i))
# 每行第二个值
# print(table.row_values(i)[1])
# 第i行第四列的值
# print(sheet_data.cell(i, 3).value)
# print(table.col_values(i))
pass
#
# df =pd.read_excel(r"C:\Users\ming\Desktop\data_excel.xlsx")
# print(df.head())
封装成类读取Excel文件
import xlrd
class operateexcel():
def __init__(self,file_path = None):
if file_path == None:
self.file_path = r"C:\Users\ming\Desktop\1.xlsx"
else:
self.file_path = file_path
self.excel = self.get_excel()
self.nrows = self.get_lines()
def get_excel(self):
tables = xlrd.open_workbook(self.file_path)
return tables
def get_sheet(self, i =None):
"""
获取index获取sheet内容
"""
if i == None:
i = 1
sheet_data = self.excel.sheet_by_name("Sheet"+str(i))
return sheet_data
def get_lines(self):
"""
获取行数
"""
lines = self.get_sheet().nrows
return lines
def get_cell(self, row , col):
"""
获取单元格内容
"""
data = self.get_sheet().cell(row , col).value
return data
if __name__ == '__main__':
print(operateexcel().get_cell(1,0))
读写模式
要了解文件读写模式,需要了解几种模式的区别,以及对应指针
r : 读取文件,若文件不存在则会报错
w: 写入文件,若文件不存在则会先创建再写入,会覆盖原文件
a : 写入文件,若文件不存在则会先创建再写入,但不会覆盖原文件,而是追加在文件末尾
rb,wb: 分别于r,w类似,但是用于读写二进制文件
r+ : 可读、可写,文件不存在也会报错,写操作时会覆盖
w+ : 可读,可写,文件不存在先创建,会覆盖
a+ : 可读、可写,文件不存在先创建,不会覆盖,追加在末尾