0

Python で実行される IDM システムを使用して、個人用フォルダーの作成を自動化しようとしています。すべてのユーザー共有が に作成され\\\server\personal\%userID%ます。はprofileid\\\server\personal and %userID%として渡されます。default_settings.home_directory私がこのようにしようとしているコード:

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

//構成文字列の の後に null 文字があると思います。Python は気にしませんが、C 関数のバッキングos.makedirsは null で停止します。repr(share)文字列のより詳細な表現を提供するロギングを試してください。

編集:os.makedirs関数をより詳しく見ると、別の可能性が示唆されます。必要に応じて各コンポーネントを確認または作成できるように、パスはコンポーネントに分割されています。エラー メッセージは、最初の 2 つのスラッシュ (\\\\を使用して表示された場合repr) が最初のディレクトリ要素として分割されていることを意味します。ドキュメントには、バージョン 2.3 で UNC パスがサポートされていると記載されていますが、非常に古いバージョンの Python を使用しているか、まだバグがある可能性があります。

于 2012-08-27T22:29:29.860 に答える