<p>可以处理的方法不止一种,但这取决于您的环境:</p>
<p><strong>第一个:</strong>读取目录中的文件,并将数据附加到输出文件中。然后,使用pickle或json将已读文件保存在字典中,并保存在光盘上。下次调用代码getc时,解析该列表并跳过保存在该列表中的文件(PS:使用Python进行文件处理,它的<em>用例)</p>
<p><strong>第二个:</strong><a href="https://stackoverflow.com/questions/2022775/how-to-handle-new-files-to-process-in-cron-job">Pass the newly create files as argument</a>,如果适合您(我对ApacheNIFI一无所知)</p>
<p><strong>第三个:</strong>将这些行与输出文件中的行进行比较,但这会降低性能,而且可能非常不可靠</p>
<p><strong>第四个:</strong>将已读取的文件移动到子目录中</p>
<p>我会选择方法一,因为它非常简单和直接</p>
<p>编辑:
我做了一段代码(没有测试),如果它不能开箱即用,那么应该清楚该怎么做</p>
<pre><code>import json
import os
directory = "/home/adrian/from_hdfs/"
parsed = {}
with open('data.txt') as json_file:
parsed = json.load(json_file)
#open output file
with open("finalfile.txt", "a") as outfile:
#loop through src directory
for filename in os.listdir(directory):
if filename in parsed:
continue # skip file if already read
file_abs = os.path.join(directory, filename)
#print("Reading file: "+file_abs)
with open(file_abs, "r") as src_file:
myfile.write(src_file.read()) #append data from src to dest
parsed[filename] = 1
with open('result.json', 'w') as fp:
json.dump(parsed, fp)
</code></pre>