我正在尝试处理我的python程序中的文件地址并将其传递给MySQL.
我发现我需要使用原始字符串作为地址,以便它完整地到达MySQL.这有效:
myFilePath = r"'D:\\folder\\file.csv'"
sqlStatement = r"LOAD data local INFILE %s INTO TABLE test ...);" % (myFilePath)
Run Code Online (Sandbox Code Playgroud)
但是,我正在创建一个GUI,并希望路径名是可更改的.所以我试图将正常的文件路径转换为正确的格式,但我无法完成它.
我该如何转换?
filePath = "D:\folder\file.csv"
Run Code Online (Sandbox Code Playgroud)
进入与上面的myFilePath完全相同的格式?
到目前为止,我提出的最好的是
myFilePath = r'r"' + "'" + filePath + "'"
Run Code Online (Sandbox Code Playgroud)
但我仍然需要加倍现有的反斜杠,我找不到任何办法.我试过迭代,像这样:
myFilePath = ""
for i in range(len(filePath)):
if i == "\\":
myFilePath += "\\\\"
else:
myFilePath += filePath[i]
Run Code Online (Sandbox Code Playgroud)
但这不起作用,可能是因为反斜杠的逃逸性质.再次使用原始字符串会产生比我想要的更多的反斜杠,而且我已经超出了我的深度.
有人可以帮帮我吗?
您不应该首先使用字符串格式来创建SQL语句.一旦你以正确的方式使用db接口,问题就会消失:
file_path = r"d:\folder\file.csv"
cursor.execute("LOAD data local INFILE %s INTO TABLE test ...);", file_path)
Run Code Online (Sandbox Code Playgroud)
对SQL语句使用字符串格式化只会让您自己开始SQL注入攻击.
| 归档时间: |
|
| 查看次数: |
1085 次 |
| 最近记录: |