2017-02-08 7 views
1

ファイルを作成し、単語のリストと数字のリストをファイルに書き込むことに問題があります。コードはファイルをまったく作成しません。ここでは、次のとおりです。2つのリストをファイルに書き込む方法

sentence=input('please enter a sentence: ') 
list_of_words=sentence.split() 
words_with_numbers=enumerate(list_of_words, start=1) 
filename = 'fileoflists.txt' 
with open('fileoflists', 'w+') as file: 
    file.write(str(list_of_words) + '/n' + str(words_with_numbers) + '/n') 

おかげ

+1

を?スクリプトをどのように実行しましたか? – Daniel

+1

複製できません - あなたのコードを実行し、 'fileoflists'ファイルを作成しました。ところで、\ n "'改行が必要でしたか? – tdelaney

答えて

0

リファレンスthis question for info。これを試してみてください:

sentence=input('please enter a sentence: ') 
list_of_words=sentence.split() 
words_with_numbers=enumerate(list_of_words, start=1) 
filename = 'fileoflists.txt' 

with open('fileoflists', 'w+') as file: 
    file.write('\n'.join(['%s \n %s'%(x[0],x[1]) 
       for x in zip(list_of_words, words_with_numbers)])+'\n') 
+1

OPは 'str()'を使ってリストを文字列に変換します。これは文字通り彼が質問したことです。あなたのソリューションは、リストの内容を書くための合理的な方法のようですが、元の質問の明確化が必要な場合があります。 – tdelaney

0

はあなたのコードを実行することは、ファイルを作成していますが"fileoflists.txt"の値でfilenameでファイル名を定義しているが、その後、あなたがそのパラメータを使用しますが、単にファイル(ない作成しないことを確認しませんテキストファイル)。

また、期待しているものが印刷されません。リストの場合、リストの文字列表現が出力されますが、words_with_numbersの場合は、enumerateによって返されたイテレーターの__str__が出力されます。

コード怒鳴るの変更を参照してください:何のファイルが作成されていないようであれば、それは別の場所にあってもよい

sentence = input('please enter a sentence: ') 
list_of_words = sentence.split() 
# Use list comprehension to format the output the way you want it 
words_with_numbers = ["{0} {1}".format(i,v)for i, v in enumerate(list_of_words, start=1)] 

filename = 'fileoflists.txt' 
with open(filename, 'w+') as file: # See that now it is using the paramater you created 
    file.write('\n'.join(list_of_words)) # Notice \n and not /n 
    file.write('\n') 
    file.write('\n'.join(words_with_numbers)) 
関連する問題