2014-01-13 38 views
1

我有一個更多的新手問題:蟒蛇2.7換行符 - 目錄行添加到文件

我有很多鏈接到外部文件和一些首長的名字是相當長的(由於原來的文件夾結構)。我已經嘗試了許多方法來打破一條線,但是大多數方法在與pyodbc模塊一起使用時失敗了。

到目前爲止我有:

>>> a = 'some text'\ 
    'more stuff' 
>>> a 
'some textmore stuff' 
>>> b = r'some stuff'\ 
    ' even more' 
>>> b 
'some stuff even more' 
>>> c = r'one' r'two' 
>>> c 
'onetwo' 
>>> 

而現在的部分失敗:

SIMD = xlrd.open_workbook(r'P:\Costing and Income\Projects & Planning\HRG, '\ 
    'IRF, Programme Budgeting\__2008-11\Developments\SIMD\PI_upload (08.05.2012).xls') 

其中一期工程爲xlrd模塊OK

直接在IDLE嘗試了一些簡單的東西me:

PCPath1 = r'Z:\IRF\Data\Primary Care Hospitals\PI\_'\ 
      '2008-11 (final)\2012.08.15 - 2008-11_PCH_v4.mdb' 
PCConn1 = pyodbc.connect('DRIVER={Microsoft Access Driver (*.mdb)}; DBQ='+PCPath1) 

我有以下錯誤:

Traceback (most recent call last): 
    File "Z:/IRF/Python/Production/S3_PC1_0811.py", line 7, in <module> 
    PCConn1 = pyodbc.connect('DRIVER={Microsoft Access Driver (*.mdb)}; DBQ='+PCPath1) 
UnicodeDecodeError: 'ascii' codec can't decode byte 0x81 in position 100: ordinal not in range(128) 

當PCPath1沒有故障時,它工作正常。

有人可能會問爲什麼我試圖去做,主要是爲了代碼的可讀性。

以上任何幫助將不勝感激!

回答

1

你需要把r在第二行前爲好,否則\將與201組合以產生非ASCII字符\x81

In [5]: r'Z:\IRF\Data\Primary Care Hospitals\PI\_'\ 
      '2008-11 (final)\2012.08.15 - 2008-11_PCH_v4.mdb' 
Out[5]: 'Z:\\IRF\\Data\\Primary Care Hospitals\\PI\\_2008-11 (final)\x812.08.15 - 2008-11_PCH_v4.mdb' 

In [6]: r'Z:\IRF\Data\Primary Care Hospitals\PI\_'\ 
      r'2008-11 (final)\2012.08.15 - 2008-11_PCH_v4.mdb' 
Out[6]: 'Z:\\IRF\\Data\\Primary Care Hospitals\\PI\\_2008-11 (final)\\2012.08.15 - 2008-11_PCH_v4.mdb' 
+0

tobias_k - 謝謝!!!它像一個魅力:) – dce