0

こんにちは、"load data Infile" を使用して Excel ファイルまたは .txt からデータベースにデータをインポートしたいのですが、ファイルへのパスに "\" が含まれていますが、Mysql によって受け入れられません。

明確にするために、これは私の PYTHON コードです。

def parcourir(self):
        fi=QFileDialog.getOpenFileName(self)
        self.Pathfile.setText(fi)

def chargeFile(self):        
        try:
            fiche=open(self.Pathfile.text(),'r')
        except IOError :
            QtGui.QMessageBox.warning(self,"erreur","fichier nontrouvé")
        connection = MySQLdb.connect (host = "localhost", user = "root", passwd = "", db = "lexique")
        cursor = connection.cursor()
        query="LOAD DATA INFILE 'self.Pathfile.text()' INTO TABLE tbl_lexique FIELDS TERMINATED BY ',' ENCLOSED BY '\"'LINES TERMINATED BY '\n'"
        cursor.execute( query )
        connection.commit()
        ...................
4

2 に答える 2

1

おそらく、パラメーター化されたクエリの使用を検討する必要があります。

query="""
    LOAD DATA INFILE '%s' INTO TABLE tbl_lexique 
    FIELDS TERMINATED BY '%s' 
    ENCLOSED BY '%s' 
    LINES TERMINATED BY '%s'
    """

# you can also try converting your windows
# path to a posix path
path = self.Pathfile.text().replace('\\', '/')
cursor.execute(query, (path, ',', '"', '\n'))
于 2012-06-20T01:11:40.050 に答える
0

さて、ついに機能しています:)私はこのクエリを入れました:

query = "LOAD DATA INFILE '%s' " % self.Pathfile.text()
query += " INTO TABLE tbl_lexique FIELDS TERMINATED BY ',' ENCLOSED BY '\\\"' LINES TERMINATED BY '\\n'" 
cursor.execute( query )
于 2012-06-20T22:55:24.033 に答える