2016-07-27 43 views
-2
Afghanistan 
Albania 
Algeria 
etc 

上記のように、私はtxtファイルからコピーした国のリストを持っています。私はcountriesという名前のリストを作成したいと思います。リストを1つずつ引用符で囲んでコンマを追加する必要はありません。Pythonの多くの文字列を引用符で囲む

これは効率的かつ迅速にどのように行うことができますか? 2+の別個の文字列、例えばPuerto Ricoを持つ行があります

countries = [ 
"Afghanistan", 
"Albanian", 
"Algeria".... 
] 

最終的なリストは次のようになります。 splitlines()は、各行のリストエントリを作成する代わりに、両方の単語を区切っているようです。

+0

使用( "countries.txt") '開いた。readlines()。スプリット( "\ n")を' – Julien

+1

@JulienBernu 'readlines()は'すでにリストを返します。たぶんあなたは '.read()。split()'と言っていたでしょうか? – Bakuriu

+0

_ "引用符で囲みカンマを追加してください" _?最終的なリストはどのように見えますか? –

答えて

2

引用符とコンマがリテラルコードでとして指定されたリストと文字列のためのものです。あなたはプログラムで読んでいるデータには必要ありません。

改行を読み、改行を取り除くだけです。

with open('countries.text') as src: 
    countries = [row.strip('\n') for row in src] 
1

すべてのエントリに引用符とカンマを追加する必要はありません。トリプルクォーテーションで包囲して分割するだけです。

text = \ 
''' 
Afghanistan 
Albania 
Algeria 
''' 
my_list = [] 
for line in text.strip().split('\n'): 
    my_list.append(line) 

print my_list 
['Afghanistan', 'Albania', 'Algeria'] 

またはコンパクトバージョン:あなたのエントリーを想定

my_list = \ 
''' 
Afghanistan 
Albania 
Algeria 
'''.split() 
+0

このループは意味がありません。 'text.strip()。split( '\ n')'はすでに作成しているリストです。 –

+0

@Stefan Pochmann実際には 'text.split()'はそれを行います –

+0

'text.strip()'は空リスト行が最後のリストで終わるのを避けるためのものです。 –

0

test.txtであり、あなたはout.txtに出力したい:

if __name__ == '__main__': 
    with open('test.txt', 'rb') as fr: 
     reader = fr.readlines() 
     with open('out.txt', 'wb') as fw: 
      for line in reader: 
       fw.write('\''+line.strip('\n').strip('\r')+'\'\n') 

これはout.txtに書き込みます:

'Afghanistan' 
'Albania' 
'Algeria' 
'etc' 

それとも、リストでそれを取得したい場合:

if __name__ == '__main__': 
    with open('test.txt', 'rb') as fr: 
     reader = fr.readlines() 
     res = list() 
     for line in reader: 
      res.append(line.strip('\n').strip('\r')) 

終わりに、我々は

res = ['Afghanistan', 'Albania', 'Algeria', 'etc'] 
関連する問題