我的编程空间,编程开发者的网络收藏夹
学习永远不晚

使用python+txt构建测试数据

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

使用python+txt构建测试数据

一、背景

    有4张表,每张表要插入多条测试数据。如若还有同种需求,于是写了一个脚本,来添加数据。


二、代码

#--coding:utf8--
import pymysql


class InsertTestData(object):
    STUDENT_FILE = 'Student.txt'
    COURSE_FILE = 'Course.txt'
    TEACHER_FILE = 'Teacher.txt'
    SCORE_FILE = 'Score.txt'

    def __init__(self):
        self.connect = pymysql.Connect(
            host = 'localhost',
            port = 3306,
            user = 'root',
            # passwd = ' ',
            charset = 'utf8'
        )
        self.database = 'execersise_test'

    def read_lines(self, filename):
        dict = {}
        file_name = filename.split('.')[0]
        dict['file_name'] = file_name
        with open(filename) as f:
            lines = f.readlines()
        dict['file_content'] = lines
        return dict

    def connect_mysql(self):
        cursor = self.connect.cursor()
        return cursor

    def close_mysql(self):
        self.connect.close()

    def close_curser(self):
        self.connect_mysql().close()

    def add_test_datas(self, file_obj):
        file = file_obj
        file_name = file['file_name']
        title = file['file_content'][0].strip()
        datas = file['file_content'][1:]
        content_len = len(datas)
        data = ''
        counter = 1
        for tmpdata in datas:
            if counter == content_len:
                data += '(' + tmpdata.strip() + ');'
            else:
                data += '(' + tmpdata.strip() + '),'
            counter += 1
        sql = 'insert into ' + self.database + '.' + file_name + ' (' + title + ') values '+ data
        try:
            # self.connect_mysql().executemany(sql)
            self.connect_mysql().execute(sql)
        except Exception as e:
            print('add_' + file_name + ' error: ', e)
        self.connect.commit()
        self.close_curser()

if __name__ == '__main__':
    testdata = InsertTestData()
    testdata.add_test_datas(testdata.read_lines(InsertTestData.STUDENT_FILE))
    testdata.add_test_datas(testdata.read_lines(InsertTestData.TEACHER_FILE))
    testdata.add_test_datas(testdata.read_lines(InsertTestData.COURSE_FILE))
    testdata.add_test_datas(testdata.read_lines(InsertTestData.SCORE_FILE))

    在main函数中,只需要指定要读取的文件,即可快速插入测试数据。

    为了便于构造sql语句,定义的数据文件格式如下:

`SID`,`CID`,`Degree` 
'103' , '3-245' , '86'
'105' , '3-245' , '75'
'109' , '3-245' , '68'
'103' , '3-105' , '92'
'105' , '3-105' , '88'
'109' , '3-105' , '76'
'101' , '3-105' , '64'
'107' , '3-105' , '91'
'108' , '3-105' , '78'
'101' , '6-166' , '85'
'107' , '6-166' , '79'
'108' , '6-166' , '81'


三、遇到的问题

  1. UnicodeDecodeError: 'gbk' codec can't decode byte 0xbf in position 2: illegal multibyte sequence

    原因:文件编码不是ANSI;

    解决方法:将文件用notepad打开,另存,编码设置为ANSI格式。

  2. 入库的中文信息乱码,显示为'?'

    原因:在创建数据库时,未将charset设置为utf8;

    解决方法:重建数据库,重建表,数据库和表的charset都设置为utf8

  3. 如何将sql的values数据构造成‘(),(),();‘的格式

    解决方法:增加计数器,当读取到最后一行时,以‘;’结尾

  4. 如何通过读取一个文件,同时获取要操作的表名称、列名、values

    解决方法:

    数据文件的文件名称,定义成表名;

    数据文件的titile,即第一行内容,定义成表的列;

    数据文件的内容,即第一行之后的内容,定义成表的数据。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

使用python+txt构建测试数据

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

使用python+txt构建测试数据

一、背景    有4张表,每张表要插入多条测试数据。如若还有同种需求,于是写了一个脚本,来添加数据。二、代码#--coding:utf8--import pymysqlclass InsertTestData(object):    STU
2023-01-31

eclipse 中使用 ant 自动构建 测试

eclipse 中使用 ant 自动构建 junit测试[@more@]主要关于直接在eclipse中使用ant 的build.xml 自动完成测试的时候遇到的问题。Buildfile: C:Documents and SettingsA
2023-06-03

利用PHP trait DTO构建可测试的数据传输层

在开发过程中,数据传输对象(Data Transfer Object,DTO)是一个常见的设计模式,它可以在不同层之间传输数据。利用PHP trait DTO可以更方便地构建可测试的数据传输层。本文将介绍DTO的概念以及如何使用PHP tr
2023-10-21

Python怎么使用Pandas处理测试数据

这篇文章主要介绍“Python怎么使用Pandas处理测试数据”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python怎么使用Pandas处理测试数据”文章能帮助大家解决问题。Python自动化测
2023-07-05

Python使用Pandas处理测试数据的方法

Pandas是一个功能极其强大的数据分析库,可以高效地操作各种数据集,这篇文章主要介绍了Python自动化测试-使用Pandas来高效处理测试数据,需要的朋友可以参考下
2023-02-21

数据库的建筑师:使用 DDL 构建数据结构

数据库结构的基石:使用 DDL 构建数据结构
数据库的建筑师:使用 DDL 构建数据结构
2024-02-19

怎样使用caffe测试mnist数据集

这篇文章给大家介绍怎样使用caffe测试mnist数据集,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。想要入门深度学习没有几个趁手的兵器是不行的,目前流行的框架tensorflow、pytorch、caffe等,笔者也
2023-06-19

数据库的结构、创建、使用

从逻辑上看:描述信息的数据存在数据库中并由DBMS统一管理从物理上看:描述信息的数据事宜文件的方式存储在物理磁盘上数据库文件分为:1.数据文件:存放数据库数据和数据仓库对象的文件主要数据文件(.mdf)+次要数据文件(.ndf)主要数据文件只能有一个,存放数据
数据库的结构、创建、使用
2015-08-09

linux如何使用Snapcraft构建、测试并发布Snap软件包

这篇文章主要介绍linux如何使用Snapcraft构建、测试并发布Snap软件包,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!snapcraft 是一个正在为其在 Linux 中的地位而奋斗的包管理系统,它为你重
2023-06-16

怎么使用Navicat生成MySQL测试数据

使用Navicat生成MySQL测试数据:连接数据库,打开表设计器,启用“数据生成”选项卡。设置行数、字段、数据类型和规则。预览生成的数据,满意后开始生成。对于“导入数据”类型,导入文件并指定目标表。
怎么使用Navicat生成MySQL测试数据
2024-04-10

基于Python怎么用Faker批量测试数据

这篇文章主要介绍了基于Python怎么用Faker批量测试数据的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇基于Python怎么用Faker批量测试数据文章都会有所收获,下面我们一起来看看吧。测试过程中,经常需
2023-06-29

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录