Привет всем, это код, который я пытаюсь запустить. Я не компьютерный ученый, и я знаю, что это простой ответ. У меня просто нет инструментов для ответа. Я пытаюсь, чтобы этот список был напечатан в текстовом файле. Он работает, если я печатаю на экране. Ошибки я получаю это: «TypeError: ожидается символ буфера объекта»python output data type confusion
здесь код
input = open('Tyger.txt', 'r')
text = input.read()
wordlist = text.split()
output_file = open ('FrequencyList.txt','w')
wordfreq = [wordlist.count(p) for p in wordlist]
#Pair words with corresponding frequency
dictionary = dict(zip(wordlist,wordfreq))
#Sort by inverse Frequency and print
aux = [(dictionary[key], key) for key in dictionary]
aux.sort()
aux.reverse()
for a in aux: output_file.write(a)
Спасибо!
Это не решит вашу проблему, но вы должны рассмотреть возможность использования ['' with' statement] (http://docs.python.org/reference/compound_stmts.html#the-with-statement) для открытия файлов. Вы также можете посмотреть в ['collections.Counter'] (http://docs.python.org/library/collections.html#collections.Counter), где подсчитываете вещи и в своем понимании списков словарных статей,' [ (значение, ключ) для ключа, значение в словаре.items()] '- используя [' dict.items() '] (http://docs.python.org/library/stdtypes.html#dict.items) означает вам не нужно постоянно искать словарные словари, которые лучше читать. –
Я бы начал с изменения 'output_file.write (a)' to 'output_file.write (str (a))'. Когда вы печатаете его на экране, перед печатью он делает неявное преобразование строк. Запись в файл не делает этого. –
Что такое 'type (a)' он должен быть строкой. Вы можете передать его в строку с помощью 'str (a)' – dm03514