【发布时间】:2016-09-30 02:46:44
【问题描述】:
是否可以with open()列表中包含的所有文件并创建文件句柄以进行写入?
例如,如果我的函数在机器学习任务中接受用于数据拆分的文件名列表,
fname_list = ['train_dataset.txt', 'validate_dataset.txt', 'test_dataset.txt']
那么能做到就方便了:
with open('source_dataset.txt) as src_file, open(name_list, 'w') as <DONT_KNOW_WHAT_TO_DO_HERE>:
并在块内执行一些数据拆分。
编辑:所以我的问题基本上是“是否可以为使用 'with open()' 打开的文件列表获取多个文件句柄?”
【问题讨论】:
-
我不确定如何为文件列表创建多个文件句柄。 ...open(name_list, 'w') as
: -
为什么不遍历文件名列表,打开并读取它们,并将每个文件名的字符串数据存储在一个列表中以供以后使用?
-
由于数据集可能包含数百万行,这样做不会将开销增加到 (100 万) x len(list_of_filenames) 吗?或者也许这是一些我不应该担心的优化?
-
好吧。只需遍历文件名列表,然后打开每个文件。然后用那个文件做你的生意。无论是阅读文字还是其他。
-
我明白你的意思了。打开每个文件并将各自的文件句柄保存到列表中,执行读写,然后关闭列表中的所有句柄?但我想在这种情况下不能使用“with open()”?
标签: python with-statement