0

月を表すサブディレクトリを含む年のディレクトリ構造を作成しようとしています。

  • 2012年
    • 01
    • 02
    • 03

私のコードは次のようなものです:

newpath = "test"
for year in range(2000, 2013):
    for month in range(1, 13):
        newpath += str(year)+'\\'+str(month)
        if not os.path.exists(newpath):
            os.makedirs(newpath)

エラーが発生します

OSError: [Errno 2] No such file or directory: 'test\\2000\\1

誰かがこれについていくつかの情報を持っていますか ありがとう

4

4 に答える 4

4

str(1)返品1不可01。してください"%02d" % month

(そして、os.path.joinパス文字列を作成するために使用することを検討してください。)

于 2012-05-22T13:37:58.837 に答える
1
newpath += str(year)+'\\'+str(month)

繰り返しごとに同じ文字列に新しい文字を追加しますが、これはあなたが望むものではありません。

これを試して:

root_path = "test"
for year in range(2000, 2013):
    for month in range(1, 13):
        newpath = os.path.join(root_path, '{0:04}'.format(year), '{0:02}'.format(month))
        if not os.path.exists(newpath):
            os.makedirs(newpath)

os.path.join、OS 上でパス名を正しく構築します。

于 2012-05-22T13:42:44.767 に答える
0

あなたのnewpath意志

test2000\12000\22000\32000\42000\52000\62000\72000\82000\92000\102000\112000\122001\12001\22001\32001\42001\52001\62001\72001\82001\92001\102001\112001\122002\12002\22002\32002\42002\52002\62002\72002\82002\92002\102002\112002\122003\12003\22003\32003\42003\52003\62003\72003\82003\92003\102003\112003\122004\12004\22004\32004\42004\52004\62004\72004\82004\92004\102004\112004\122005\12005\22005\32005\42005\52005\62005\72005\82005\92005\102005\112005\122006\12006\22006\32006\42006\52006\62006\72006\82006\92006\102006\112006\122007\12007\22007\32007\42007\52007\62007\72007\82007\92007\102007\112007\122008\12008\22008\32008\42008\52008\62008\72008\82008\92008\102008\112008\122009\12009\22009\32009\42009\52009\62009\72009\82009\92009\102009\112009\122010\12010\22010\32010\42010\52010\62010\72010\82010\92010\102010\112010\122011\12011\22011\32011\42011\52011\62011\72011\82011\92011\102011\112011\122012\12012\22012\32012\42012\52012\62012\72012\82012\92012\102012\112012\12

あなたの最後の繰り返しで。に追加する必要はありませんnewpath

于 2012-05-22T13:43:14.610 に答える
0

newpathループ内でリセットしていません。このようなものがうまくいくはずです:

for year in range(2000, 2013):
    for month in range(1,13):
        newpath = os.path.join("test", str(year), "%02d"%(month,)
        if not os.path.exists(newpath):
            os.makedirs(newpath)
于 2012-05-22T13:44:05.103 に答える