为了账号安全,请及时绑定邮箱和手机立即绑定

为什么目录嵌套?

为什么目录嵌套?

狐的传说 2021-05-09 12:13:28
我正在编写一个程序,该程序需要一个.csv文件并将每一行写入到新创建的目录(每个目录中有1个xml文件)中的xml文件中。它可以工作,但是我的目录嵌套了。我该如何修改以便它们不嵌套?import os, csvmetadata = csv.reader(open('metadata.csv'))row_num = 0for row in metadata:    if row_num == 0:        tags = row    else:        os.makedirs('submission-%d' % row_num)        os.chdir('submission-%d' % row_num)        out_file = open('metadata-xml-%d.xml' % row_num, 'w')        out_file.write('<submissionData>' + '\n')        for i in range(len(tags)):            out_file.write('    ' + '<' + tags[i] + '>' + row[i] + '</' + tags[i] + '>' + '\n')        out_file.write('</submissionData>')        print(file=out_file)    row_num +=1out_file.close()
查看完整描述

3 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

如lenik所述,您无需更改为子目录。如果将您else:的代码块替换为以下代码,则目录将不会嵌套,并且将按照您期望的方式创建:


else:

    dir_name = 'submission-%d' % row_num

    os.makedirs(dir_name)

    file_name = os.path.join(dir_name, 'metadata-xml-%d.xml' % row_num)

    out_file = open(file_name, 'w')

    out_file.write('<submissionData>' + '\n')

    for i in range(len(tags)):

        out_file.write('    ' + '<' + tags[i] + '>' + row[i] + '</' + tags[i] + '>' + '\n')

    out_file.write('</submissionData>')

    print(file=out_file)

确保您正确缩进该代码,否则会出现错误。


查看完整回答
反对 回复 2021-05-18
?
阿晨1998

TA贡献2037条经验 获得超6个赞

不要让程序表现得像人一样,不要使用chdir():


folder = 'submission-%d' % row_num

name = os.path.join( folder, 'metadata-xml-%d.xml' % row_num)

out_file = open( name, 'w')

更简单易懂。而且您不必担心再绕着子文件夹走动。


查看完整回答
反对 回复 2021-05-18
  • 3 回答
  • 0 关注
  • 224 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号