2011-09-26 64 views
0

我想在沒有逃避反斜槓的情況下在MySQL中存儲windows路徑。我怎樣才能在Python中做到這一點?我正在使用MySQLdb將記錄插入到數據庫中。當我使用MySQLdb.escape_string()時,我注意到反斜槓被刪除。在沒有轉義反斜槓的情況下在MySQL中存儲windows路徑

+0

「我注意到,反斜槓被除去了。」具體如何 - 你是否注意到了這一點。包含您用於查看路徑的代碼。這可能是做錯了事。 –

回答

0

看一看os.path.normpath(thePath)

我不記得,如果它是一個,但有一個標準os.path中格式化功能,讓雙反斜線,可以存儲在一個數據庫「原樣」 「按原樣」重新使用。我沒有更多的Windows機器,無法再測試它。

0

只需使用一本字典添加斜線任何需要的地方,以使查詢有效:

http://codepad.org/7mjbwKBf

def addslashes(s): 
    dict = {"\0":"\\\0", "\\":"\\\\"} #add more here 
    return ''.join(dict.get(x,x) for x in s) 

query = "INSERT INTO MY_TABLE id,path values(23,'c:\windows\system\')"; 

print(addslashes(query));