0

我正在尝试使用在 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: '\\\\'
4

2 回答 2

0

试试这个替代方案:

os.makedirs(os.path.join(self.config.getID('default_settings.home_directory'), profileid))

应该注意斜杠/反斜杠的混淆

于 2012-08-27T21:43:02.950 回答
0

我猜//你的配置字符串后面有一个空字符。Python 不在乎,但 C 函数支持os.makedirs将在 null 处停止。尝试记录repr(share),这将给出字符串的更详细的表示。

编辑:更仔细地查看该os.makedirs功能提出了另一种可能性。路径被分解为组件,以便可以根据需要检查或创建每个组件。该错误消息意味着前两个斜杠(\\\\使用 显示时repr)已被分解为第一个目录元素。文档说从2.3 版开始支持 UNC 路径,但也许您使用的是非常旧的 Python 版本,或者仍然存在错误。

于 2012-08-27T22:29:29.860 回答