【发布时间】:2012-08-22 09:11:35
【问题描述】:
我正在尝试使用在 Python 上运行的 IDM 系统自动创建个人文件夹。所有用户共享都将在\\\server\personal\%userID% 上创建。 \\\server\personal and %userID% 作为 default_settings.home_directory 和 profileid 传递。我正在尝试这样的代码:
share = self.config.getID('default_settings.home_directory') + profileid
self.log.info('Share = [{0}]'.format(share))
os.makedirs(share)
在我的日志中
Share = [\\server\personal\xr2829]
但它会因
而出错WindowsError: [Error 123] The filename, directory name, or volume label syntax is incorrect: '\\\\'
【问题讨论】:
-
日志中的 '...\xr2829' 看起来很可疑,就像一个无效的字符串文字十六进制转义序列,应该是 '\xhh' 的形式,其中 'h's 必须是十六进制数字 [0. .9][a..f]。反斜杠是从哪里来的?
-
“profileid”是随机生成的用户 ID。那是在开始时创建的,然后我只使用变量。
-
反斜杠也让我感到困惑。 IDM 表示身份管理系统。
-
您是否将实际代码复制并粘贴到问题中?错误消息表明它没有收到日志记录的相同字符串。
-
反斜杠字符本身必须在 Python 字符串文字中转义(加倍),否则它们将被解释为转义序列的开头。检查生成随机配置文件 ID 的代码,因为这就是 '\xr2829' 中反斜杠的来源。