<p>您可以使用<code>csv.writer</code>将每一行写入输出文件,使用<code>writerow</code>而不是打印到屏幕上。你知道吗</p>
<pre><code>output_dir = "C:\\Users\\Lenovo\\.spyder-py3\\NER_training"
DIR = 'C:\\Users\\Lenovo\\.spyder-py3\\Testing\\'
print("Loading from", output_dir)
nlp2 = spacy.load(output_dir)
with open('eng_productnames.csv', newline='') as input_file, \
open('output.csv', 'w') as output_file:
reader = csv.reader(input_file)
writer = csv.writer(output_file)
writer.writerow(["Filename", "Product"]) # this is the header row
for rowz in reader:
try:
filenamez = rowz[1]
file = open(DIR+filenamez, "r", encoding ='utf-8')
filecontentszz = file.read()
for s in filecontentszz:
filecontentszz = re.sub(r'\s+', ' ', filecontentszz)
#filecontents = filecontents.encode().decode('unicode-escape')
filecontentszz = ''.join([line.lower() for line in filecontentszz])
doc2 = nlp2(filecontentszz)
for ent in doc2.ents:
writer.writerow([filenamez, ent.text])
break
</code></pre>
<p>我在这里假设<code>filenamez</code>和<code>ent.text</code>在每一列中都包含您想要的信息。如果不是这样的话,那么您可以在写入CSV之前操纵它们以获得所需的内容。你知道吗</p>