2017-05-17 10 views
-1

私はPythonの初心者で、リストのリストをCSVファイルに変換する方法をいくつか検索した後、私の問題を解決する方法が見つかりませんでした。ここでこのリストをCSVで変換する

は私のコードです:

#!C:\Python27\read_and_convert_txt.py 
import csv 

if __name__ == '__main__': 

with open('c:/python27/mytxt.txt',"r") as t: 
    lines = t.readlines() 
    list = [ line.split() for line in lines ] 

with open('c:/python27/myfile.csv','w') as f: 
    writer = csv.writer(f) 
    for sublist in list: 
     writer.writerow(sublist) 

最初open()は、第2の部分は、csvファイルにリストのリストを書きます

list = [["hello","world"], ["my","name","is","bob"], .... , ["good","morning"]] 

ようにtxtファイルからリストのリストを作成します。最初の列にのみ表示されます。単に

hello;world 
my;name;is;bob 
good;morning  
+0

奇妙:

list = [["hello","world"], ["my","name","is","bob"] , ["good","morning"]] with open("d:/test.csv","w") as f: writer = csv.writer(f, delimiter=";") writer.writerows(list) 

は、出力ファイルとして提供します。しかし、何でもお試しください: 'writer = csv.writer(f、delimiter =" \ t ")' –

+0

注: 'writer.writerows(list)'を直接使用してください。変数名に 'list'を使わないでください –

+0

これはあなたの実際の字下げにはなりません。これは実行されません。あなたのインデントを修正してください。 – khelwood

答えて

0

これはあなたが望むものであるならば、私にはわからない:デフォルトの区切りはカンマではなく、セミコロンであるよう

hello;world 
my;name;is;bob 
good;morning 
+0

こんにちはバート、それは動作しますが、なぜ各行の間に空白行があるのか​​わかりません。しかし、答えをありがとう – manoman

1

:私はtxtpadでcsvファイルを開いたときに再開するには

Column 1, Column 2, Column 3, Column 4 ...... 
hello  world  
my  name  is  bob 
good  morning 

:私はこのようなcsvファイルにそれを書くためにリストのリストからさ何が必要

パンダのデータフレームを使用

import pandas as pd 
df = pd.DataFrame(list) 
df.to_csv('filename.csv') 

デフォルトでは、欠損値は[なし]で置き換えられます。 SE

df.fillna('', inplace=True) 

だからあなたの最終的なコードは

import pandas as pd 
df = pd.DataFrame(list) 
df.fillna('', inplace=True) 
df.to_csv('filename.csv') 

乾杯ようにする必要があります!

注:リストを変数名として使用しないでください。これは、Pythonのキーワードであるためです。

関連する問題