Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用python 3.5将mysql数据导入.txt文件?_Python_Mysql_Python 3.x - Fatal编程技术网

如何使用python 3.5将mysql数据导入.txt文件?

如何使用python 3.5将mysql数据导入.txt文件?,python,mysql,python-3.x,Python,Mysql,Python 3.x,我正在尝试使用Python3.x将mysql数据导入到.txt文件中,但我似乎遗漏了什么。我的期望是,数据应该以表格/列格式导入到文件中。我尽我最大的努力去解决问题,但我没有得到我所需要的 下面是我的代码: import pymysql.cursors import pymysql import sys import os # Connect to the database connection = pymysql.connect(host='localhost',

我正在尝试使用Python3.x将mysql数据导入到.txt文件中,但我似乎遗漏了什么。我的期望是,数据应该以表格/列格式导入到文件中。我尽我最大的努力去解决问题,但我没有得到我所需要的

下面是我的代码:

import pymysql.cursors
import pymysql
import sys
import os

# Connect to the database
connection = pymysql.connect(host='localhost',
                             user='root',
                             password="",
                             db='jmeterdb',
                             cursorclass=pymysql.cursors.DictCursor)

try:
    with connection.cursor() as cursor:
        # Select all records
        sql = "select * from emp"
        cursor.execute(sql)

    # connection is not autocommit by default. So you must commit to save
    # your changes.
    result = cursor.fetchall()
    newfile = open("db-data.txt","a+")
    for row in result:
        newfile.writelines(row)

    print(result)
    newfile.close()

finally:
    connection.close()
在终端上,python在执行
print(result)
时向我显示数据,但在
db data.txt
文件中,它只显示列名

预期结果:

Column_Name1 Column_Name2 Column_Name3
data1        data2        data3
data1        data2        data3

此代码为上述问题生成预期输出,如下所示:

import pymysql.cursors
import pymysql
import sys
import os

# Open database connection
connection = pymysql.connect(host='localhost',
                             user='root',
                             password="",
                             db='jmeterdb',
                             cursorclass=pymysql.cursors.DictCursor)
# prepare a cursor object using cursor() method
with connection.cursor() as cursor:
# Prepare SQL query to select a record into the database.
    try:

        sql = "SELECT * FROM EMP order by ename asc"
# Execute the SQL command
        cursor.execute(sql)
# Fetch all the rows in a list of lists.
        results = cursor.fetchall()
        # print(results)
        if results:
            newfile = open("db-data.txt","a+")
            newfile.write('ename'+"\t"+'jobs'+"\t"+"salary"+"\t"+'comm'+"\t"+'manager'+"\t"+'hiredate'+"\t"+'deptno'+"\t"+'empno'+"\n")

        for index in results:
            ltr=[]
            ltr.append(index['ename'])
            ltr.append(index['job'])
            ltr.append(index['sal'])
            ltr.append(index['comm'])
            ltr.append(index['mgr'])
            ltr.append(index['hiredate'])
            ltr.append(index['deptno'])
            ltr.append(index['empno'])
            lenltr=len(ltr)
            for i in range(lenltr):
                newfile.write('{}'.format(ltr[i]))
                newfile.write("\t")
                print(ltr[i])
            newfile.write("\n")


# # Now print fetched result
        #print("ename=%s,empno=%d,job=%d,hiredate=%d,comm=%s,sal=%d,deptno=%d,mgr=%d" %(ename, empno, job, hiredate, comm, sal, deptno, mgr))
        # print(index)
    except:
        print ("Error: unable to fecth data")
# disconnect from server
connection.close()
newfile.close()

此代码为上述问题生成预期输出,如下所示:

import pymysql.cursors
import pymysql
import sys
import os

# Open database connection
connection = pymysql.connect(host='localhost',
                             user='root',
                             password="",
                             db='jmeterdb',
                             cursorclass=pymysql.cursors.DictCursor)
# prepare a cursor object using cursor() method
with connection.cursor() as cursor:
# Prepare SQL query to select a record into the database.
    try:

        sql = "SELECT * FROM EMP order by ename asc"
# Execute the SQL command
        cursor.execute(sql)
# Fetch all the rows in a list of lists.
        results = cursor.fetchall()
        # print(results)
        if results:
            newfile = open("db-data.txt","a+")
            newfile.write('ename'+"\t"+'jobs'+"\t"+"salary"+"\t"+'comm'+"\t"+'manager'+"\t"+'hiredate'+"\t"+'deptno'+"\t"+'empno'+"\n")

        for index in results:
            ltr=[]
            ltr.append(index['ename'])
            ltr.append(index['job'])
            ltr.append(index['sal'])
            ltr.append(index['comm'])
            ltr.append(index['mgr'])
            ltr.append(index['hiredate'])
            ltr.append(index['deptno'])
            ltr.append(index['empno'])
            lenltr=len(ltr)
            for i in range(lenltr):
                newfile.write('{}'.format(ltr[i]))
                newfile.write("\t")
                print(ltr[i])
            newfile.write("\n")


# # Now print fetched result
        #print("ename=%s,empno=%d,job=%d,hiredate=%d,comm=%s,sal=%d,deptno=%d,mgr=%d" %(ename, empno, job, hiredate, comm, sal, deptno, mgr))
        # print(index)
    except:
        print ("Error: unable to fecth data")
# disconnect from server
connection.close()
newfile.close()

writelines()
假设有一个行数组,您必须使用
write(row+“\n”)
请参阅使用write而不是writelines。我刚刚通过使用以下代码得到了表结构:
对于结果中的行:newfile.write(“\t.join(row))
但没有来自sql的数据。
writelines()
假设有一个行数组,您必须使用
write(row+“\n”)
请参阅使用write而不是writelines。我刚刚通过使用以下代码获得了表结构:
用于结果中的行:newfile.write(“\t”.join(row))
,但没有来自sql的数据。