2011-08-21 59 views
1

這是該文件存在:轉義Python中別名的空格?

~/Library/Application Support/Something/something.sqldb 

這是我的命令來訪問文件:

connect('~/Library/Application\ Support/Something/something.sqldb') 

的命令不起作用,因爲該文件,something.sqldb,無法找到。任何想法如何解決這個問題?

感謝您的幫助!

+1

應用程序和支持之間的反斜槓不應該是必需的,請嘗試刪除它 –

回答

0

如果使用單引號,如果使用反斜槓,則不會轉義空格。使用雙引號

connect("~/Library/Application\ Support/Something/something.sqldb") 

如果您使用Python,您可以使用expanduser把字符串轉換成你的connect語句之前

connect (os.path.expanduser("~/........")) 
+3

'''和''在Python中完成同樣的事情,你在考慮Perl。 – geoffspear

+0

@Wooble,你確定嗎? – ghostdog74

+0

那麼,除非文檔說謊,是的,我還沒有閱讀解析器的源代碼,儘管'''是'\''返回True – geoffspear

2

試試這個:

connect('/home/YOURNAME/Library/Application Support/Something/something.sqldb') 

我刪除了反斜線和更換因爲Python不是shell,並且不會按照您期望的方式擴展它們。

3

問題不在於空間,它是代字符。 Python不是一個shell,不會擴展字符串中的特殊字符。有些功能可以做到這一點。 os.path.expanduseros.path.expandvars可以爲您擴展字符串的部分和$VAR部分。