저는 BGE의 작은 프로젝트에서 data.txt를 data.csv 파일로 가져 와서 데이터를 2 개의 열로 나눕니다.블렌더 게임 엔진에서 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로 데이터를 가져올 수 있지만 내가 열로 데이터를 분리 할 수없는 하나의 열에있는 모든 가져온 데이터. 이 문제를 어떻게 해결할 수 있습니까?
그냥 파일을 직접 읽어 보셨습니까 'csv.reader' 객체로 CSV로 변환합니까? 데이터가 이미 쉼표로 분리 된 형식 인 것 같습니다. 하위 섹션 만 원할 경우 StringIO로 펌핑하여 읽을 수 있습니다. – theodox
저는 초보자이므로 csv.reader 객체로 직접 파일을 읽는 것에 대해 잘 모릅니다. 나는 내 "reader = csv.reader (f, delimiter = ',')"가 csv 리더라고 생각했습니다. – ricster
data.txt 샘플은 쉼표로 구분되어 있습니다. data.txt를 읽고 수동으로 쉼표로 분리하여 csv로 저장하면 다시 읽을 수 있습니다. 파일의 시작 부분에 ID 행을 추가하면됩니다. Data.txt에서 여러 줄을 가져 와서 각 줄의 두 번째 열을 data.csv의 열에 넣으면됩니다. var1, var2, var3에 3 행을 입력 한 다음 'writerow (ID, var1 [1], var2 [1], var3 [1])'로 읽습니다. – sambler