记录一次从txt文件导入数据的python下的MySQL实现
环境: python2.7
ComsenzXP自带MySQL
安装python-MySQL模块
数据格式:txt格式的账号信息。
数据一行一条数据。
难点:有的行只有账号,没有密码;有的为空行;有的行首行尾有三连引号;有的空行;有的不是账号密码信息。
代码实现:
#!/usr/bin/env python
# encoding: utf-8 """
@version: ??
@author: elijahxb
@contact: elijahxb@163.com
@site: http://www.cnblogs.com/elijahxb
@software: PyCharm Community Edition
@file: main.py
@time: 2017/7/8 23:47
"""
import MySQLdb
import os
#import re Conn_IP = '127.0.0.1'
Conn_UserName = 'root'
Conn_PassWord = ''
Conn_database = 'qqdata'
Conn_Table = 'login'
Conn_Port = 3306 importpath = u"""D:\QQ数据库""".encode("gbk")
pattern = "[0-9,a-z,A-Z]{4,12}"
sumlist = []
def gett(path):
filedata = []
onedata = []
filelist = os.listdir(path)
for file in filelist:
print "处理文件中... ->" + file
with open(os.path.join(path,file),'r') as fh:
lines = fh.readlines()
for index,line in enumerate(lines):
print "正在处理第{0}行数据,进度{0}/{1},【{2}】".format(index,len(lines),str(float("%0.2f"%(float(index)/len(lines)))*100) + "%")
if len(line) < 14:
continue
elif '"""' in line:
line = line.split('"""')[1]
text_l = line.split(" ")
username = text_l[0]
passwd = text_l[1].split("\n")[0]
if len(username) < 4 or len(passwd) < 4:
continue
onedata.append(username)
onedata.append("'" + passwd + "'")
filedata.append(tuple(onedata))
onedata = []
filedata = list(set(filedata))#清除一个文件里面的所有重复项
sumlist.append(tuple(filedata))
return sumlist conn = MySQLdb.Connect(host = Conn_IP,
user = Conn_UserName,
passwd = Conn_PassWord,
db = Conn_database,
port = Conn_Port
)
cur = conn.cursor()
cur.execute("use qqdata")
cur.execute("truncate table login")
sqlcmd = "insert into login (QQ,PWD) values(%s,%s)"
t = gett(importpath)
for singlefiledata in t:
cur.executemany(sqlcmd,singlefiledata)
cur.close()
conn.close()
记录一次从txt文件导入数据的python下的MySQL实现的更多相关文章
- MySQL笔记(三)由txt文件导入数据
改编自学校实验,涉及一些字符集相关的问题. 索引 建库 导入数据 最终脚本 下载数据 点击这里 建库 create.sql DROP DATABASE IF EXISTS orderdb; CREAT ...
- Linux下通过txt文件导入数据到MySQL数据库
1.修改配置文件 在 /etc/my.conf 中添加 local_infile=1 2.重启MySQL >service mysqld restart 3.登录数据库 登录时添加参数 --lo ...
- 用SQLSERVER里的bcp命令或者bulkinsert命令也可以把dat文件导入数据表
用SQLSERVER里的bcp命令或者bulkinsert命令也可以把dat文件导入数据表 下面的内容的实验环境我是在SQLSERVER2005上面做的 之前在园子里看到两篇文章<C# 读取纯真 ...
- 将TXT文件 导入 sqlserver数据库
情景一: 数据库已存在旧表名 old_table,列名old_column_name. 将TXT文件导入数据库已存在旧表old_table中,导入过程中需注意 数据源中列名可全部不修改 或 全部修改 ...
- Selenium(九)测试用例数据分离与从文件导入数据
一.测试用例数据与代码分离 1.从之前的脚本来看,我还是把数据写在了脚本中,这样脚本的通用性很差.全局的数据其实可以从数据库.文本文件.Excel中直接读取. 2.代码和用户数据分离: 3.数据设计- ...
- python操作txt文件中数据教程[4]-python去掉txt文件行尾换行
python操作txt文件中数据教程[4]-python去掉txt文件行尾换行 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文章 python操作txt文件中数据教程[1]-使用pyt ...
- python操作txt文件中数据教程[3]-python读取文件夹中所有txt文件并将数据转为csv文件
python操作txt文件中数据教程[3]-python读取文件夹中所有txt文件并将数据转为csv文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 python操作txt文件中 ...
- python操作txt文件中数据教程[2]-python提取txt文件
python操作txt文件中数据教程[2]-python提取txt文件中的行列元素 觉得有用的话,欢迎一起讨论相互学习~Follow Me 原始txt文件 程序实现后结果-将txt中元素提取并保存在c ...
- python操作txt文件中数据教程[1]-使用python读写txt文件
python操作txt文件中数据教程[1]-使用python读写txt文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 原始txt文件 程序实现后结果 程序实现 filename = '. ...
随机推荐
- 2017-02-20 注册.Net Framework4.0
在使用IIS发布Web应用程序时,有时会遇到Asp.Net 4.0尚未在Web服务器上注册的问题,需要手动注册下.Net Framework 4.0. 注册.net Framwork4.0 步骤,以w ...
- ES6-let命令
let命令 用于声明变量,但是声明的变量只能在let命令所在的代码块内有效, { let a = 10; var b = 1; } 其中,a在代码块的外部是调用不到的.对于for循环的计数器里面,就很 ...
- centos ifcfg-eth0
DEVICE=eth0IPADDR=192.168.1.117NETMASK=255.255.255.0GATEWAY=192.168.1.1ONBOOT=yes
- 达观数据分析平台架构和Hive实践——TODO
转自: http://www.infoq.com/cn/articles/hadoop-ten-years-part03 编者按:Hadoop于2006年1月28日诞生,至今已有10年,它改变了企业对 ...
- L117
Hoover has become a household word for a vacuum cleaner through the world.Economics are slowly killi ...
- mysql定时任务备份bat命令-记录一下待日后使用
最近有个任务,需要每日备份数据库到某个磁盘,使用window定时任务调用bat文件实现. %Date:~0,2%获取星期几,这个要根据系统进行尝试, 有 星期几 7/25/2018 有 2018/ ...
- html 常用代码块
解决外边框不计入div尺寸的代码-moz-box-sizing: border-box;box-sizing: border-box;-webkit-box-sizing: border-box; 手 ...
- HDU3518Boring counting(后缀自动机)
Problem Description 035 now faced a tough problem,his english teacher gives him a string,which consi ...
- 455. Assign Cookies Add to List
Assume you are an awesome parent and want to give your children some cookies. But, you should give e ...
- 输入一个链表,输出该链表中倒数第k个结点
package suanfa; import suanfa.doubleLinkedList.Node; public class solution { public Node find(Node h ...