私はBGEの小さなプロジェクトで、data.txtをdata.csvファイルにインポートしようとしていて、データを2つのカラムに分割しています。Blender Game EngineでPythonでCSVデータを分割する
私のdata.txtはこのように見えます。
Breathing rate:, 1.0
Pulse:, 140
Spinal Injury:, Yes
あなたが推測するように、「、」を列の区切り記号として使用します。
これは私の現在のコードです。
try:
file = open(path+"dialogue.txt", 'r')
info = file.readlines()
own.text = str(info[currentLineNumber])
except:
own.text = "end of script"
column1 = []
column2 = []
if own ["currentLine"] == 10:
own.sendMessage("resume")
with open(path+"data.txt", 'r') as in_file:
stripped = (line.strip() for line in in_file)
datalines = (line.split(",") for line in stripped if line)
with open(path+"data.csv", 'w') as out_file:
writer = csv.writer(out_file)
writer.writerow(('subject', 'value'))
writer.writerow(('ID: ', (uuid.uuid1())))
writer.writerows(datalines)
os.rename(path+"data.csv", path+"newData.csv")
with open('newData.csv', 'r') as f:
reader = csv.reader(f, delimiter=',')
for row in reader:
column1.append(row[0])
column2.append(row[1])
データをdata.csvにインポートすることはできますが、データを1つの列にインポートすることはできません。これをどうすれば解決できますか?
あなただけのファイルを直接読んで試してみました'csv.reader'オブジェクトでCSVに変換しますか?データが既にカンマ区切り形式で表示されているようです。サブセクションだけが必要な場合は、StringIOにそれをポンピングして読み取ることができます。 – theodox
私は初心者ですので、csv.readerオブジェクトを使って直接ファイルを読むことが分かりません。私は自分の "reader = csv.reader(f、delimiter = '、')"がcsvリーダーであると思った。 – ricster
あなたのdata.txtのサンプルはカンマで区切られています。あなたはdata.txtを読み込み、手作業でカンマで区切り、csvとして保存し直すことができます。あなたがしているのは、ファイルの先頭にID行を追加することだけです。私はあなたがしようとしているのは、data.txtから複数の行を取り、各行の2番目の列をdata.csvの列に入れることだと思いますか? var1、var2、var3に3行読み込まれ、それから 'writerow(ID、var1 [1]、var2 [1]、var3 [1])' – sambler