Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.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
循环浏览多个非结构化txt文件,使用数据本地填充将其插入MySql_Mysql_Python 3.x - Fatal编程技术网

循环浏览多个非结构化txt文件,使用数据本地填充将其插入MySql

循环浏览多个非结构化txt文件,使用数据本地填充将其插入MySql,mysql,python-3.x,Mysql,Python 3.x,我在一个目录中有多个txt文件,我想将它们全部插入mysql;显示的每个文件的内容应占据一行。在MySQL中,我有两列:ID auto increment和LastNamenvarchar45。首先,我使用insert into,我得到的错误是我不能插入太多的行!然后,我使用了下面的代码,但它给出了错误1064。代码如下: import MySQLdb import sys import os result = os.listdir("path") for x in result: db

我在一个目录中有多个txt文件,我想将它们全部插入mysql;显示的每个文件的内容应占据一行。在MySQL中,我有两列:ID auto increment和LastNamenvarchar45。首先,我使用insert into,我得到的错误是我不能插入太多的行!然后,我使用了下面的代码,但它给出了错误1064。代码如下:

import MySQLdb
import sys
import os
result = os.listdir("path")
for x in result:
    db = MySQLdb.connect("localhost","root","password","myblog")
    cursor = db.cursor()
    file = os.path.join('path\\'+x)    
    cursor.execute("LOAD DATA LOCAL INFILE file INTO clamp_test(ID, LastName)");   
    file.close()          
db.commit()
db.close

你能告诉我我做错了什么吗?这是将非结构化文件的多行插入MySql的正确方法吗?

一个问题是包含SQL文本的字符串文本

 "LOAD DATA LOCAL INFILE file INTO ..."
                         ^^^^
在这里,文件只是文本字符串中的字符。它不是要计算的变量的引用

我们需要发送到MySQL的SQL语句需要如下所示

 LOAD DATA LOCAL INFILE '/mydir/myfile.txt' INTO ...
                        ^^^^^^^^^^^^^^^^^^^
在代码中,我们希望执行的是对变量文件求值,求值结果将其合并到SQL文本字符串中

大概是这样的:

 "LOAD DATA LOCAL INFILE '%s'  INTO ... " % (file)

操作系统错误代码64:计算机不在计算机上network@Sammitch; 我的错!那是1064年。它说语法不正确,但我仔细检查了一下,结果是正确的。然后斯宾塞的回答就是你想做的。谢谢!但我仍然收到相同的错误:cursor.executeLOAD数据本地填充“%s”到表clamp\u测试%file1;错误代码仍然是1064@斯宾塞7593这是python代码,不是吗?似乎你错过了终止字符串的双引号。%文件位不是字符串文字的一部分,这是一些python语法,用于计算变量并将其固定到字符串中,类似于C或perl或bash sprintf函数。不要将%s发送到MySQL。MySQL不知道该怎么做。向MySQL发送一个实际的文件名。。。将“/mydir/myfile.txt”填充到。。。