1

csvファイルにデータを書き込もうとしていますが、別の列を選択できません..

car=["car 11"]
finish=["Landhaus , Nord"]
time=["['05:36']", "['06:06']", "['06:36']", "['07:06']", "['07:36']", "['08:06']", "['08:36']", "['09:06']", "['09:36']", "['10:06']", "['10:36']", "['11:06']", "['11:36']", "['12:06']", "['12:36']", "['13:06']", "['13:36']", "['14:06']", "['14:36']", "['15:06']", "['15:36']", "['16:06']", "['16:36']", "['17:06']", "['17:36']", "['18:06']", "['18:36']", "['19:06']", "['19:36']", "['20:06']", "['20:36']"]<br/>
myfile = open("Informationen.csv", "wb")
writer = csv.writer(myfile,dialect='excel',delimiter=' ')
bla =[car,finish,time]
writer.writerow(bla)

出力:

car 11 Landhaus , Nord "['05:36']", "['06:06']", [..]

1 行と列 1 のすべて

でもこうして欲しい

car 11 (in row 1 Colum 1) | "Landhaus , Nord" (in row 1 Column 2) | ['05:36'] (in Line 1 Column 3 ) | ['06:06'] (in row 1 Column 4 ) till Column n

助けてくれてありがとう!


行 1: car 11 (column 1) Landhaus , Nord (column 2) ['05:36' ]
(column 3) ['05:36'] (column 4) [... ] 例http://img13.imageshack.us/img13/4964/unbenanntvilw.png

これまでの解決策:しかし、タイムリストにはまだ問題があります

car=["car 11"]
trenn=[';']
finish=['Landhaus , Nord']
time=["['05:36']", "['06:06']", "['06:36']", "['07:06']", "['07:36']", "['08:06']", "['08:36']", "['09:06']", "['09:36']", "['10:06']", "['10:36']", "['11:06']", "['11:36']", "['12:06']", "['12:36']", "['13:06']", "['13:36']", "['14:06']", "['14:36']", "['15:06']", "['15:36']", "['16:06']", "['16:36']", "['17:06']", "['17:36']", "['18:06']", "['18:36']", "['19:06']", "['19:36']", "['20:06']", "['20:36']"]
myfile = open("Informationen2.csv", "wb")
writer = csv.writer(myfile,delimiter=' ')
bla = car + trenn + finish + trenn + time
writer.writerow(bla)
myfile.close()
4

2 に答える 2

1


Pythonのドキュメントには、csv.writer()関数については ...

dialect「特定のCSV方言に固有の一連のパラメーターを定義するために使用されるオプションのパラメーターを指定できます」。

...そしてそれ...

"他のオプションのfmtparamsキーワード引数を指定して、現在の方言の個々の書式設定パラメーターをオーバーライドすることができます".

発生している問題は、リストの文字列表現timeをファイルに書き込み、空白区切り文字を使用してファイルに書き込むことの結果です。プレーン テキスト ファイルとして表示Informationen.csvすると、問題が明らかになります。

まず、引数として空白区切り文字を渡してファイルに書き込むとcsv.writer(myfile, dialect='excel', delimiter=' ')、Excel 方言で定義されているデフォルトの区切り文字が上書きされ、 list の要素がではなくbla形式でファイルに書き込まれます。element1 element2 element3element1,element2,element3

次に、timeリスト内の要素の大部分は必要に応じてスプレッドシート内の独自の列に割り当てられますが、リストをそれ自体の文字列表現としてファイルに書き込むと、全体的に望ましくない書式設定が行われます。

スクリプトで作成されたファイルを Excel ファイルとして開くと、Excel は最初の 2 つのコンマに基づいて 2 つの初期値を読み取ります。これらはたまたま文字列の中央にあり'Landhaus , Nord'、リストの文字列表現内にありますtime

前者をリスト内にネストするのではなく、最初にリストの要素をtimeリストに追加することで、必要な列の分離を実現できます。次に、 inblaを省略する必要があります。これにより、ファイルへの書き込み時にデリミタのオーバーライド効果を回避できます。 delimiter=' 'csv.writer(myfile, dialect='excel', delimiter=' ')

import csv

car = ['car 11']
finish = ['Landhaus , Nord']
time = ["['05:36']", "['06:06']", "['06:36']", "['07:06']", "['07:36']"]
try:
    with open('Informationen.csv', 'w') as myfile:
        writer = csv.writer(myfile, dialect='excel')
        bla = [car, finish]
        for each_time in time:
            bla.append(each_time)
        writer.writerow(bla)
except IOError as ioe:
    print('Error: ' + str(ioe))

Excel で次の出力を生成します。

http://imageshack.us/a/img839/8061/screenshotkn.png

于 2013-03-21T14:02:31.753 に答える
1
import csv

car=["car 11"]
finish=['Landhaus , Nord']
time=["['05:36']", "['06:06']", "['06:36']", "['07:06']", "['07:36']", "['08:06']", "['08:36']", "['09:06']", "['09:36']", "['10:06']", "['10:36']", "['11:06']", "['11:36']", "['12:06']", "['12:36']", "['13:06']", "['13:36']", "['14:06']", "['14:36']", "['15:06']", "['15:36']", "['16:06']", "['16:36']", "['17:06']", "['17:36']", "['18:06']", "['18:36']", "['19:06']", "['19:36']", "['20:06']", "['20:36']"]
myfile = open("derp.csv", "wb")
writer = csv.writer(myfile)
bla = car + finish + time
writer.writerow(bla)
myfile.close()

ここに私がExcelから得た出力があります

ここに画像の説明を入力

于 2013-03-21T12:41:11.897 に答える