Python---文件读写

一、txt文件读写

方式1:(不推荐)

# 写
f = open('1.txt','w')
f.write('111111\n22222\n')  # 写字符串对象
f.writelines(['3333333\n','4444444\n'])  # 写列表对象
f.close()
# 读
f = open('1.txt','r')
# print(f.read())  # 读所有行,返回字符串对象
# print(f.readline())  # 读首行,返回字符串对象
# print(f.readlines())  # 读所有行,返回列表对象,带\n
print(f.read().splitlines()) #读所有行,返回列表对象,不带\n
f.close()

方式2:(推荐)

# 写
with open('1.txt','w') as f:
    f.write('111111\n')
    f.writelines(['222222\n','3333333\n'])
# 读
with open('1.txt','r') as f:
   # print(f.read())
   # print(f.readline())
   # print(f.readlines())
   print(f.read().splitlines())
  • 常用打开模式:r(读),w(写),a(追加),b(二进制)

二、csv文件读写

逗号分隔值(CSV,有时也称为字符分割值),其文件以纯文本形式存储表格数据

# 读
import csv
with open('2.csv','w',encoding='utf8',newline='') as f:
    obj = csv.writer(f)
    obj.writerow(['id','name',age'])
    obj.writerow(['1','张三','11'])
    obj.writerow(['2','李四','21'])
# 写
with open('2.csv','r',encoding='utf8) as f:
    obj = csv.reader(f)
    for i in obj:
    print(i)

三、excel文件读

excel文件:包含xls和xlsx两种格式,读的方式一模一样,只是文件后缀名不一致

# 读取excel表单
# pip install xlrd
import xlrd


def read_excel(file_name, index):  #
    excel = xlrd.open_workbook(file_name)  # 打开一个excel文件
    sheet = excel.sheets()[index]  # 得到一个表单对象
    return sheet


if __name__ == '__main__':
    table = read_excel('3.xlsx', 0)  # 得到索引为0的sheet
    for i in range(1,table.nrows):   # table.nrows返回行数
        rows = table.row_values(i)   # 得到指定行的所有内容,以列表形式返回
        print(rows)   # 打印一整行内容
        print(rows[1])  # 打印每行的第二个成员,也就是下标为1的成员内容

四、xml文件读

XML:可扩展标记语言,标准通用标记语言的子集,是一种

# 读取XML节点名称为node_name对应的所有值,以列表形式返回
import xml.etree.ElementTree as ET  # 导入模块并重命名为ET


def read_xml(file_name, node_name):
    datas = []  # 定义一个空列表,用来存储指定节点的内容
    tree = ET.parse(file_name)  # 得到元素树
    root = tree.getroot()  # 得到根
    for i in root.iter(node_name):  # 循环遍历指定名称的所有节点
        datas.append(i.text)  # 将匹配的节点值加入列表
    return datas


if __name__ == '__main__':
    result = read_xml('./4.xml', 'username')
    print(result)
    print(result[1])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值