近来有一个需求:计算文件的tfidf值,然后将整个文件拆分,写到以tag_id_act命名的信文件中。我的文件字段为[tag_id, act, word, tf, idf]。一开始想着如何生成多个文件句柄,即使生成了新文件,我又如何确定将字段写到哪一个文件下,苦思冥想,终于得出了一下简洁的方法。(使用简书不方便上传代码,只能复制粘贴了)。
代码distribution_path是待写入新文件的位置,save_path是新生成的文件,中间判断save_path代码段的逻辑是:
(1) 根据fstr字段生成save_path,始终只有一个可读写的句柄fout
(2) 如果save_path不存在,通过'w'模式新建一个文件fout。如果save_path不存在,说明是新建的文件,打开新的文件以前,需要将旧的文件关闭。
(3) 如果save_path存在,就以追加的模式打开文件,继续向文件中写入新的内容。
如果有更好的方法,欢迎交流!
网友评论