from sys import argv
from PyDictionary import PyDictionary
import csv
name, filename = argv
d = PyDictionary()
csv_columns = ['Word', 'Noun', 'Verb', 'Adjective', 'Adverb']
csv_file = 'trans_test.csv'
try:
with open(csv_file, 'w+') as f:
with open(filename, 'r') as g:
w = csv.DictWriter(f, fieldnames = csv_columns)
w.writeheader()
for i in g:
word = (i.split(' ')[0])
dict1 = d.meaning(word)
dict1['Word'] = word
w.writerow(dict1)
except IOError:
print('I/O error')
Я получаю ошибки:
Erorr: The Following Error occured: list index out of range
Traceback (most recent call last):
File "my_trans.py", line 19 in module<>
dict1['Word'] = word
TypeError: 'NoneType' object does not support item assignment
Я пытаюсь извлечь первое слово из каждой строки в текстовом файле, получить определения этого слова, поместите его в словарь, добавьте это слово с ключевым словом «Word» в этот словарь и запишите его в файл CSV.
Что я пробовал и проверял :
-dict1 - это NoneType, я не знаю почему - однако, когда я помещаю dict1 = d.meaning(word)
вне попытки, кроме dict1 - это словарь
-Я работаю над UbuntuVM, и когда я Я создаю файл file.txt со словами на ВМ, скрипт работает, но когда я принес файл, созданный в блокноте, на Windows, я получаю эту ошибку
- если я записываю содержимое файла вниз в UbuntuVM скрипт работает, но если я копирую содержимое файла, извлеченного из Windows, в файл в Ubuntu, он также не работает
-файл из Windows Блокнот сохраняется с utf-8
file.txt выглядит так:
renowned - (known or talked about by many people; famous)
prevalent - (widespread in a particular area at a particular time)
lesion -
aneurysm - (an excessive localized enlargement of an artery caused by a weakening of the artery wall)
ischemic -
juvenile -
ashen - (of the pale gray color of ash)
inflammation -
conned -
intermittent - (occurring at irregular intervals; not continuous or steady)
mild -