2016-04-12 3 views
1

я не знаю, как к объяснению мой вопрос, здесь код и ошибка:Как я могу привести переменную в python?

html_title = 'abc' 
file_name = html_title, '.txt' 
html_write_to_file = open(file_name, 'wt') 
... 
... 
... 

ошибка:

TypeError: coercing to Unicode: need string or buffer, tuple found 

Я заметил, что file_name должны добавить кавычки, как это

html_write_to_file = open('file_name', 'wt')

При добавлении кавычек функции Variable не работают в open('file_name', 'wt')

, но я должен использовать формат имени файла, как это: html_title, '.txt'

Я не знаю, как это сделать ...

Дополнительный вопрос:

символы японский или китайский, я попытался encode to utf-8, все еще не работает хорошо.

+0

'file_name = html_title, '.txt'' создает кортеж, а не одну строку. –

+0

Ваш вопрос должен быть «как я могу конкатенировать строки?» –

+0

'' a "," b "' является 'tuple'' (" a "," b ")', '" a "+" b "' является 'str''" ab "'. ** Comma делает кортеж, а не parens. ** –

ответ

3

Вы создаете кортеж здесь:

file_name = html_title, '.txt' 

Запятая делает его кортеж; здесь вы создали кортеж с двумя элементами. Затем передать этот кортеж в open() команды:

html_write_to_file = open(file_name, 'wt') 

, который жалуется, что она может принимать только строку; он говорит вам, что кортеж неприемлем.

Вы, вероятно, просто хотел добавить .txt к html_title строки, так что используйте + для конкатенации строк:

file_name = html_title + '.txt' 

Теперь file_name это строковый объект тоже.