2011-10-13 51 views
1

我已經繼承了一些帶有嵌入空格的目錄名的代碼,我沒有重命名目錄的選項。比方說,目錄的名稱是「內嵌式空間」如何在MANIFEST.in文件中的目錄名稱中轉義空格?

現在,我想從這個目錄訪問一個MANIFEST.in文件

我嘗試了以下一些文件:

recursive-include 'embedded spaces' *.dat 
recursive-include "embedded spaces" *.dat 
recursive-include embedded\ spaces *.dat 

這些都給出錯誤的東西一起的「預警線:沒有文件找到匹配的‘空間’目錄下的‘嵌入式’

我有一個解決辦法是

recursive-include embedded* *.dat 

但我想知道在MANIFEST.in目錄名稱中編碼空格是否有一個不太危險的方法。

+0

'recursive-include「embedded \ spaces * .dat」'? – brc

回答

2

不,它不會出現。檢查的distutils.filelist源,它不解析MANIFEST.in的工作表明,該線分割純粹上的空白,以確定的動作和其參數

這裏是源(在python 2,7)

def _parse_template_line(self, line): 
    words = line.split() 
    action = words[0] 

    ... 

    if action in ('include', 'exclude', 
        'global-include', 'global-exclude'): 
     ... 
    elif action in ('recursive-include', 'recursive-exclude'): 
     if len(words) < 3: 
      raise DistutilsTemplateError, \ 
        "'%s' expects <dir> <pattern1> <pattern2> ..." % action 

     dir = convert_path(words[1]) 
     patterns = map(convert_path, words[2:]) 

    ... 
+0

這不是我所希望的,但它確實回答了這個問題。在提出問題之前,我應該考慮檢查來源。 – pwan

0

嘗試recursive-include embedded?spaces *.dat

+0

這與我現在使用的方法基本相同,但我更喜歡它,並將從當前的解決方法切換到此方法。 – pwan

相關問題