为什么目录嵌套?

我正在编写一个程序,该程序需要一个.csv文件并将每一行写入到新创建的目录(每个目录中有1个xml文件)中的xml文件中。它可以工作,但是我的目录嵌套了。我该如何修改以便它们不嵌套?


import os, csv


metadata = csv.reader(open('metadata.csv'))


row_num = 0

for 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 +=1


out_file.close()


狐的传说
浏览 225回答 3
3回答

慕桂英546537

如lenik所述,您无需更改为子目录。如果将您else:的代码块替换为以下代码,则目录将不会嵌套,并且将按照您期望的方式创建:else:&nbsp; &nbsp; dir_name = 'submission-%d' % row_num&nbsp; &nbsp; os.makedirs(dir_name)&nbsp; &nbsp; file_name = os.path.join(dir_name, 'metadata-xml-%d.xml' % row_num)&nbsp; &nbsp; out_file = open(file_name, 'w')&nbsp; &nbsp; out_file.write('<submissionData>' + '\n')&nbsp; &nbsp; for i in range(len(tags)):&nbsp; &nbsp; &nbsp; &nbsp; out_file.write('&nbsp; &nbsp; ' + '<' + tags[i] + '>' + row[i] + '</' + tags[i] + '>' + '\n')&nbsp; &nbsp; out_file.write('</submissionData>')&nbsp; &nbsp; print(file=out_file)确保您正确缩进该代码,否则会出现错误。

阿晨1998

不要让程序表现得像人一样,不要使用chdir():folder = 'submission-%d' % row_numname = os.path.join( folder, 'metadata-xml-%d.xml' % row_num)out_file = open( name, 'w')更简单易懂。而且您不必担心再绕着子文件夹走动。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python