あの鍵をこじあけるのはあなた

怪力で。

こんなだとするよね:
wdakiko

で、python スクリプトから

(python2.7の場合)
1 inputdir = u"Z:/設計書/ありか"
2 filename = u"なんかの設計.xlsx"
3 
4 f = open(os.path.join(inputdir, filename))

とか、

(python2.7の場合)
1 from distutils.dir_util import copy_tree
2 outputdir = u"Y:/実装ソース/置き場"
3 copy_tree("_dest", outputdir)

とかすらあね。

ただな…。ネットワークドライブって、「起動時に再接続」にしていて、接続設定も正しいとしても、起動時に「ネットワークドライブに再接続できませんでした」になるだろ?

さて。じゃあ、上記のようなスクリプトの運命は?

答えは、 エクスプローラから一度も開いていなければ爆発する 。IOError と WindowsError に見舞われますな。しかも最初だけだったりそうでなかったり。

けっ。エクスプローラで開きゃいいんデショ:

 1 drives = set()
 2 try:
 3     open(path1)
 4 except IOError:
 5     drives.add(os.path.splitdrive(path1)[0])
 6 for path in pathes:
 7     dr = os.path.splitdrive(path)[0]
 8     if dr not in drives:
 9         try:
10             os.listdir(path)
11         except WindowsError:
12             drives.add(dr)
13 for dr in drives:
14     from subprocess import Popen
15     Popen(["explorer", dr])
16     import time ; time.sleep(5)

はい、ふざけた対処の出来上がり。どうせこれらのフォルダは開くんだから、一石二鳥だ。

sleep は入れないと結構不定みたい。だから入れたほうがいい。あと、「ドライブ」を渡さないと効果ないので注意だ。

うん、馬鹿だ。そしてオーバキル。玄関が開かないからロケットランチャー、的な。


真面目な対処、つまりは「ネットワークドライブのまっとうな再接続手順」は、多分システム API の奥底を辿れば出てくるとは思うけど、あたしゃ頑張らない。