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将在您的操作系统上正确构建路径名。

于 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 回答