擅长:python、mysql、java
<p>如果路径字符串不是由<code>myUNCpath = "\\\\servername\\dir1\\dir2"</code>之类的文本定义的,或者使用<code>myUNCpath = "\\servername\dir1\dir2</code>这样的原始字符串,即使字符串变量是这样定义的,由于listdir总是将字符串变量的反斜杠加倍,则<code>os.listdir(myUNCpath)</code>无法正确处理Windows UNC路径。在</p>
<p>但是,如果通过从ini文件或任何其他配置文件读取UNC路径字符串,该怎么办呢?在</p>
<p>无法将其编辑为文本,也不可能在前面使用此r字符使其成为原始字符串。在</p>
<p>作为一个解决方法,我发现,可以将整个UNC path字符串变量拆分为它的单个组件(以除去这些该死的反斜杠字符),并使用文本定义重新组合它,并通过此设置再次设置反斜杠字符。那么这根弦的作用就很好了——难以置信,但却是真的!在</p>
<p>这是我的职责,执行这项工作。如果文件中的路径定义为
\servername\dir1\dir2(不添加反斜杠作为转义符)</p>
<pre><code>...
myworkswellUNCPath = recomposeUNCpathstring(myUNCpath)
...
def recomposeUNCpathstring(UNCstring):
pathstring1 = UNCstring.replace("\\\\", "").strip()
pathComponents = pathstring1.split("\\")
pathstring = "\\\\" + pathComponents[0]
for i in range(1, len(pathComponents)-1):
pathstring = pathstring + "\\" + pathComponents[i]
return pathstring
</code></pre>
<p>干杯
斯特凡</p>