win32com.client中的奇怪音译

这是问win32com.client问题的地方吗?我是Unix
试图在窗户上跑步的人,所以我几乎没有熟悉
这个模块.我有此代码:
导入win32com.client
"""访问连接"""
def connect(data_source,用户,PWD,MDW):
connaccess = win32com.client.dispatch(r'adodb.connection')
source =%s;用户id =%s; password =%s; jet OLEDB:系统数据库=%s;''
%(data_source,用户,PWD,MDW)
connaccess.open(DSN)
返回融合
我打电话给我,从Windows命令行运行程序
在c:\ drive,带有data_source ='\\ hqwhslfs001 \ Office \ Risk Orcentight上
\ myaccessdb.mdb',这是完全指定的驱动器名称,它来了
回到:
文件" c:\ python25 \ lib \ site-packages \ win32com \ client \ dynamic.py",
第258行,在_applytypes _
结果= self._oleobj_.invoketypes(*(dispid,lcid,wflags,wflags,
rettype,argtypes) + args)
pywintypes.com_error:(-2147352567,"发生异常".
" Microsoft Jet数据库引擎"," C:\\ HQWHSLFS001 \\ Office \ Risk \ Risk
疏忽\\ myaccess.mdb'不是有效的路径.确保路径
名称拼写正确,并且您已连接到服务器上的服务器
文件所属于的.",无,5003044,-2147467259),无)
请注意指示的双重斜线的奇怪插入
"没有有效的路径."还有" C:"的插入和奇怪的领导
双引号标记.
当我使用data_source ='v:\ strike oppertight \ myassessdb.mdb'调用它时,
这反映了如何在我的机器上映射同一驱动器的方式,我得到了:
文件" c:\ python25 \ lib \ site-packages \ win32com \ client \ dynamic.py",line
258,在_applytypes _
结果= self._oleobj_.invoketypes(*(dispid,lcid,wflags,wflags,
rettype,argtypes) + args)
pywintypes.com_error:(-2147352567,"发生异常".
" Microsoft Jet数据库引擎"," V:\\\风险监督\
\ myaccessdb.mdb'不是有效的路径.确保路径名是
正确拼写,您已连接到服务器
文件居住.",无,5003044,-2147467259),无)
注意data_source的怪异音译.我无能为力
明白此事.

# 回答1


" Microsoft Jet数据库引擎"," C:\\ HQWHSLFS001 \\ Office \ Risk \ Risk
这一点都不奇怪.在python中,字符串中的\字符
文字是一个逃生角色,请参见http://docs.python.org/ref/strings.html
当Python在其" repr"中打印出弦时,它始终使用
源代码表示法以打印回.
因此,如果您想在字符串中有一个反斜线,则必须放置
两个后斜线到源代码中.
在您的源代码中,\ r不是back-lash-by-r-r,而是
马车回归角色(所以它是一个字符,而不是两个);
也是第一个示例. Windows发现您表示的文件
这里不存在 - 您没有任何带有运输的文件
在您的磁盘上以文件名返回.
此外,Windows认为V:FOO是相对路径;相对的
到驱动器V的当前目录.因此,V:foo是一个短手
对于V:\ foo,作为python字符串,读取'v:\\ fo O'. 像你一样 指定董事" \危险监督"(开始 使用CR),完整的标准化字符串将显示三个 连续\字符. 您可以避免使用原始字符串引用所有反闪烁 (请参见上文URL). hth, 马丁

标签: python

添加新评论