Das klingt vielleicht wie eine Frage, die ich bereits gestellt habe, aber ich habe einen Python-Code, wo ich die Text/HTML-Datei über einen Tonanalysator und die Ausgabe in eine CSV-Datei laufen lasse. Das Problem, mit dem ich konfrontiert bin, ist, dass ich zwei Variablen aus der Ausgabe 'Tone_name' schreiben und sie als zwei Spalten derselben CSV-Datei speichern muss. Hier ist der Code, den ich bisher habe (funktionierend für eine Variable):Mehrere Variablen an CSV-Datei anhängen
import json
from watson_developer_cloud import ToneAnalyzerV3Beta
import urllib.request
import codecs
import csv
import os
import re
import sys
import collections
import glob
import xlwt
ipath = 'C:/TEMP/' # input folder
opath = 'C:/TEMP/' # output folder
reader = codecs.getreader("utf-8")
tone_analyzer = ToneAnalyzerV3Beta(
url='https://gateway.watsonplatform.net/tone-analyzer/api',
username='abcid',
password='pass',
version='2016-02-11')
path = 'C:/TEMP/*.txt'
file = glob.glob(path)
# iterate over the list getting each file
for fle in file:
# open the file and then call .read() to get the text
with open(fle) as f:
text = f.read
# tone analysis
data=tone_analyzer.tone(text='text')
# iterate through tone analysis data
tonename=[]; tonescore=[]
for cat in data['document_tone']['tone_categories']:1
for tone in cat['tones']:
tonename.append(tone['tone_name'])
tonescore.append(tone['score'])
print(tone['tone_name'],tone['score'])
# output tone name and score to file
output = fle.replace('.txt', '')
X=output
with open(X+'_tonename.csv', mode = 'w') as csvfile1:
writer = csv.writer(csvfile1)
for i in tonename:
writer.writerow([i])
Gibt es eine Möglichkeit, ich Punktzahl als Säule zusammen mit ‚tone_name‘ anhängen?
Vielen Dank, ich die Änderung vorgenommen hat, aber jetzt bin ich immer diese Fehlermeldung: Valueerror: I/O-Operation auf geschlossene Datei. Ich habe den Code mit modifiziertem Code bearbeitet. – ravsd
Mein Bad hat es wieder probiert und es hat perfekt funktioniert. Vielen Dank für deine Hilfe. – ravsd