問題は、pythonsを使用して複数のディレクトリを作成するときのWindowsのパスの文字制限ですos.makedirs()
これを投稿する前に問題を検索したときに、この投稿を見つけました。
選択された回答はプレフィックスの回避策を示唆していますが、ここでの私の質問は、Windows と UNIX で機能を確保する方法はありますか?
私が考えたもう 1 つの方法は、フォルダーを 1 つずつ作成してから、パスの長さを超えないようにファイルを作成することでしたが、コードの明らかなバグがわかりません。
path = ['folder1/s1/s1/abc.txt',
'folder1/s1/s2/def.txt']
def makedirs(path):
explode = path.split('/')
for i in range(len(explode)-1):
os.mkdir(explode[i])
os.chdir(explode[i])
if i == len(explode) -2:
download_file(explode[i+1])
# something to go back here
os.chdir('../' * (len(explode)-3)) # ??
makedirs(path[0])
ルートに戻る方法やリセットする方法がわからないため、これは最初の行でのみ機能します。「リセット」がなければ、フォルダは互いに下にあります:
folder1/s1/s1/folder1/s1/s1/abc.txt
(またはそのようなもの)
ルートからのパスを設定してリセットすることはできましたが、最大長に達するという同じ問題が発生する可能性があります。両方のOSでこれを機能させる方法についての助けをいただければ幸いです!
私が間違っているところを指摘してください。