一、csv文件
import CSV
1.1文件打开
fileopen = open("filename","w",newline="",encoding="utf-8")
打开方式:
r:只读
w:写入
wb:二进制写入
newline="":解决写入空行问题。
encoding="utf-8":指定打开文件字符集,解决文件包含中文字符打开乱码。
1.2文件读取:
readers=csv.reader(fileopen) # fileopen为以读取方式(r)打开文件
readers.__next__() #读取文件跳过首行
读取后的文件为可迭代对象,可以安照每行来迭代
for row in readers:
# print(type(row[2]))
#将type为str的字典格式数据的类型转换成dict
userdata=eval(row[2])
1.3文件写入
writer = csv.writer(fileopen)# fileopen为以写入方式(w)打开文件
writer.writerow(data) #将数据以一行方式写入文件
writerow([str1,str2]+[str3]) #加中括号写入时不会被拆分,+号相当于英文逗号。
1.x 样例代码
#试验2:csv文件操作
#打开文件
import csv
def get_userdata():
#登录数据列表
dataList=[]
file1=open("../DDT_test/testcase.csv","r")
#读文件
readers=csv.reader(file1)
#跳过首行
readers.__next__()
for row in readers:
# print(type(row[2]))
#将type为str的字典格式数据的类型转换成dict
userdata=eval(row[2])
# print(type(userdata),userdata)
dataList.append(userdata)
print(dataList)
return dataList
二、excel
2.1导入类库pandas
import pandas as pd #起别名为pd,后面通过别名调用pandas方法
2.2文件打开读取
df=pd.read_excel('filename') #打开并读取文件
pandas默认不读取第一行
2.3数据获取
2.3.1按照行获取
row=df.loc[0].values # loc[0].values意思是获取第2行数据,索引0,即为excel第二行。
2.3.2按照列获取
cloum=df['输入参数'].values # 按列名读取某列数据
listdata=cloum.tolist() #转换成列表格式操作
2.x样例代码
import pandas as pd
def get_userdata():
# 打开文件并读文件
df=pd.read_excel('../DDT_test/testcase.xlsx')
# loc[0].values意思是读取第0行,pandas默认不读取第一行,索引0,即为excel第二行
row=df.loc[0].values
print(row)
# 按列名读取某列数据
cloum=df['输入参数'].values
print(type(cloum))
# 将读取的列数据装换成list格式
listdata=cloum.tolist()
# print(type(listdata),listdata)
return listdata
三、txt文件
暂时没了解到txt文件操作类库
3.1 文件打开
fileopen = open("filename","w",newline="",encoding="utf-8")
打开方式:
r:只读
w:写入
wb:二进制写入
newline="":解决写入空行问题。
encoding="utf-8":指定打开文件字符集,解决文件包含中文字符打开乱码。
3.2文件读取
text = fileopen.read() #用read函数读取文件,读取结果text时字符串类型。
3.3 文件数据获取
对字符串切片(视为列表)然后分隔(split函数),可以按照分隔结果迭代,可循环处理。
3.x 样例代码
#txt文件处理
#利用open函数以可读方式打开文件,入参可以带相对或绝对路径,用来打开非本目录下的文件
f1=open("author.txt","r",encoding='utf-8')
#用read函数读取文件,读取结果text时字符串类型
text = f1.read()
# 切片(slice)是对序列型对象(如list, string, tuple)的一种高级索引方法。语法a[start:stop],左闭右开。
# 先利用切片去掉首尾中括号,然后用split函数将字符串初步分割数据
result=text[1:-1].split(',')
print(result)
for a in text:
print(a)
# 利用切片去掉初步分割数据多余部分(开头空格与英文单引号、结尾英文单引号)
print(a[2:-1])
四、数据库
4.x 样例代码
#*********************************
#试验:通过python脚本获取mysql数据库的数据集合
#前提:
#1、本机或其他机器已经安装了mysql服务器
#2、本机安装了mysql客户端
#3、知道数据库访问用户名和密码
#4、建一个测试数据库,或用一个临时数据库表进行试验即可
#**********************************
#导入类库
import pymysql
def get_db_data():
#连接数据库
db=pymysql.connect(host="127.0.0.1",db='jwmall',user='root',passwd='123456',charset='utf8')
#生成游标对象
cursor=db.cursor()
# 执行SQL语句
cursor.execute("select username,password from mmall_user")
# 通过fetchall方法获得全部数据
data=cursor.fetchall()
print(type(data))
# 关闭游标
cursor.close()
# 关闭数据库
db.close()
#返回读取数据
return data
FAQ
1.数据类型转换
1.1将type为str的字典格式数据的类型转换成dict
userdata=eval(row[2])
1.2 将type为str的列表格式数据装换成list
listdata=cloum.tolist()
2.纯数字写入excel会自动以科学计数法记录
在测试数据后面加"\t"以文本方式写入csv