python读写txt文件、CSV文件、Excel文件

读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+ : 可读、可写,文件不存在先创建,不会覆盖,追加在末尾

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值