助けてください。次のようなテキスト ファイルがあります。
ID: 000001
Name: John Smith
Email: jsmith@ibm.com
Company: IBM
blah1: a
blah2: b
blah3: c
ID: 000002
Name: Jane Doe
Email: jdoe@ibm.com
Company: IBM
blah1: a
blah2: b
blah3: c
ID:000003
.
.
.
etc.
各顧客の情報が 7 行にあることに注意してください。ID:000002 は次の顧客の開始を示し、000003 は次の顧客というように続きます。
出力ファイルを次のようにしたいと思います (次の行の各顧客のデータではなく、各 ID とそれに続く 7 行を列に転置します)。
ID: 000001,Name: John Smith,Email: jsmith@ibm.com,Company: IBM, blah1: a,blah2: b,blah3: c
ID: 000002,Name: Jane Doe,Email: jdoe@ibm.com,Company: IBM,blah1: a,blah2: b,blah3: c
これが最も簡単な手法かどうかはわかりませんが、リストを使用してみましたが、これは私の目的ではうまくいかないようです。私のコードがエレガントではないことはわかっていますが、これは私自身と他の 1 人のデータ操作を自動化するためのものです。機能する限り、スタイリッシュなものは必要ありません。
#!/usr/bin/python
# open file
input = open ("C:\Documents\Customer.csv","r")
#write to a new file
output = open("C:\Documents\Customer1.csv","w")
#Read whole file into data
data = input.readlines()
list = []
for line in data:
if "User Id:" in line:
list.append(line)
if "User Email:" in line:
list.append(line)
if "Company:" in line:
list.append(line)
if "Contact Id:" in line:
list.append(line)
if "Contact Name:" in line:
list.append(line)
if "Contact Email:" in line:
list.append(line)
print list
import os
output.write("\n".join(list))
# Close the file
input.close()
output.close()
出力ファイルにエスケープ文字が含まれており、一部の顧客が複数回追加されています。