无法关闭上次打开的fi

2024-09-28 23:26:23 发布

您现在位置:Python中文网/ 问答频道 /正文

你好,如果我有以下代码:

n = len([name for name in os.listdir(DIR) if os.path.isfile(os.path.join(DIR, name))])
for i in range(0, n):
    dat_file = r'C1/C10000' + str(i).zfill(2) + '.dat'
    csv_file = r'C1_conv/C10000' + str(i).zfill(2) + '.csv'
    in_dat = csv.reader(open(dat_file, 'rb'), delimiter = '\t')
    out_csv = csv.writer(open(csv_file, 'wb'))
    out_csv.writerows(in_dat)

我的问题是,最后一个文件保持打开状态。 我试着用in_dat.close()..关闭它,但是读到它不可能,因为它是一个解析器

我读过“with”函数,但不知道如何把它放进去。 有人能告诉我正确的密码吗

谢谢:D


Tags: csvpathnameinforosdiropen
1条回答
网友
1楼 · 发布于 2024-09-28 23:26:23

您需要在单独的变量中跟踪打开的文件,并在完成写入操作后将其关闭。更好的约定是使用with open(fname)语法,它为您关闭文件

您可以查阅以下代码片段,以便更好地理解:

with open(infile, 'w') as datfile, open(outfile, 'w') as csvfile:
       do_something()

相关问题 更多 >