以下代码:
def tema_get_file():
logdir='T:\\'
logfiles = sorted([ f for f in os.listdir(logdir) if f.startswith('tms_int_calls-')])
return logfiles[-1]
这运行得很好,但我试图让logdir
以直接路径运行:
\\servername\path\folder
驱动器T是映射驱动器。最初,这些文件在C盘上。在
一旦我这样做,我就会收到错误消息:
WindowsError: [Error 3] The system cannot find the path specified: '\servername\path\folder/.'
我试过:
"\\servername\\path\\folder"
,"\\servername\\path\\folder\\"
以及
r"\\servername\path\folder"
,r"\\servername\path\folder\"
以及
"\\\\servername\\path\\folder"
,"\\\\servername\\path\\folder\\"
对我来说以下两项工作
如果路径字符串不是由
myUNCpath = "\\\\servername\\dir1\\dir2"
之类的文本定义的,或者使用myUNCpath = "\\servername\dir1\dir2
这样的原始字符串,即使字符串变量是这样定义的,由于listdir总是将字符串变量的反斜杠加倍,则os.listdir(myUNCpath)
无法正确处理Windows UNC路径。在但是,如果通过从ini文件或任何其他配置文件读取UNC路径字符串,该怎么办呢?在
无法将其编辑为文本,也不可能在前面使用此r字符使其成为原始字符串。在
作为一个解决方法,我发现,可以将整个UNC path字符串变量拆分为它的单个组件(以除去这些该死的反斜杠字符),并使用文本定义重新组合它,并通过此设置再次设置反斜杠字符。那么这根弦的作用就很好了——难以置信,但却是真的!在
这是我的职责,执行这项工作。如果文件中的路径定义为 \servername\dir1\dir2(不添加反斜杠作为转义符)
干杯 斯特凡
相关问题 更多 >
编程相关推荐