【问题标题】:python 2.7 line break - directory line to the filepython 2.7 line break - 文件的目录行
【发布时间】:2014-01-13 11:42:37
【问题描述】:

我还有一个新手问题:

我有许多指向外部文件的链接,并且一些董事名称很长(由于原始文件夹结构)。我尝试了很多方法来打破一条线,但其中大多数在与 pyodbc 模块一起使用时都失败了。

到目前为止,我得到了:

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 模块有效

直接在IDLE中尝试了一些简单的东西:

>>> 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'
>>> 

现在让我失望的部分:

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 没有故障时可以正常工作。

有人可能会问我为什么要这样做,主要是为了代码的可读性。

任何有关上述的帮助将不胜感激!

【问题讨论】:

    标签: python-2.7 line break pyodbc


    【解决方案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'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-26
      • 1970-01-01
      • 2014-10-16
      • 1970-01-01
      • 2015-09-23
      • 2016-01-07
      • 2022-12-01
      • 2018-05-05
      相关资源
      最近更新 更多