PP2study6
一、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])