在Windows中使用Python创建个人共享

时间:2012-08-27 20:53:54

标签: python windows share cifs

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

2 个答案:

答案 0 :(得分:0)

尝试这个替代方案:

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

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

答案 1 :(得分:0)

我猜你的配置字符串中的//之后有一个空字符。 Python不关心,但支持os.makedirs的C函数将在null上停止。尝试记录repr(share),这将提供更详细的字符串表示。

修改:更密切地关注os.makedirs功能提示另一种可能性。该路径被分解为组件,以便可以根据需要检查或创建每个组件。错误消息表示前两个斜杠(使用\\\\显示时repr)已作为第一个目录元素分解。 documentation表示从版本2.3开始支持UNC路径,但也许您使用的是非常旧的Python版本,或者仍然存在错误。