2012-04-11 6 views
4
>>> w 
['Parts-of-speech', 'disambiguation', 'techniques', '(', 'taggers', ')', 
'are', 'often', 'used', 'to', 'eliminate', '(', 'or', 'substantially', 
'reduce', ')', 'the', 'parts-of-speech', 'ambiguitiy', 'prior', 'to', 
'parsing.', 'The', 'taggers', 'are', 'all', 'local', 'in', 'the', 'sense', 
'that', 'they', 'use', 'information', 'from', 'a', 'limited', 'context', 
'in', 'deciding', 'which', 'tag', '(', 's', ')', 'to', 'choose', 'for', 
'each', 'word.', 'As', 'is', 'well', 'known', ',', 'these', 'taggers', 
'are', 'quite', 'successful', '.'] 
>>> q=open("D:\unieng.txt","w") 
>>> q.write(w) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: argument 1 must be string or read-only character buffer, not list 
+0

結果としてファイルをどのように見せたいですか?あなたはいずれかの端に角括弧を入れ、その間に各項目とカンマを引用符で囲みますか?それとも、各項目を1行にまとめて欲しいですか?それとも何? –

答えて

1

リストを文字列に結合するには、joinを使用する必要があります。

q.write(''.join(w)) 
3

w

q.write(w) 

からの書き込みを変更すると、リストとエラーが説明するように、リストを受け入れていないファイルオブジェクトのwriteメソッドです。

あなたは、文字列にwを変換し、そのようにそれを書き込むことができます。

' '.join(w) #Joins elements with spaces in between 

次にあなたが呼び出すことができます。

q.write(str) 
+0

配列にユニコード値が含まれている場合、関数はありますか? –

+1

ユニコード文字列に加わりたい場合は、ユニコード文字列のjoinメソッドを使用します。単純に: 'u '' .join(w)'です。 (私はこの質問をする必要があるので2.xと仮定します; 3.xでは、文字列は通常Unicodeであり、あなたは 'bytes'オブジェクトを作るためにあなたの道を離れなければなりません)。 –

8

を使用してコンテンツを書くためwritelines()方法。

>>> f = open("test.txt",'w') 
>>> mylist = ['a','b','c'] 
>>> f.writelines(mylist) 

file.writelines(シーケンス)

ファイルに文字列のシーケンスを書き込みます。シーケンスは任意の オブジェクトを生成する反復可能オブジェクト、通常は文字列のリストです。writelines()行区切りを追加しません: には戻り値は注意が

はありません。

関連する問題