2016-04-12 26 views
-1

Bir python programı için bir okuma ve yazma dizisi oluşturmaya çalışıyorum. Python’a oldukça yeniim; ve sonuç olarak, gerçek kod hakkında inanılmaz bilgiye sahip değildir. Bir .CSV dosyasındaki veriyi okumakta zorlanıyorum, bu dosya 3 sütun içeriyor ve satır sayısı, kaç kullanıcının oluşturduğum programı kullanmasına bağlı. Şimdi, satırları nasıl bulacağımı biliyorum, ancak sorun, satırın tamamını, içindeki üç veri sütunuyla birlikte döndürmesidir. Peki - veri parçalarını nasıl ayırırım? Ve sonra, bu veri parçalarını nasıl okunabilir, yazılabilir veya üzerine yazılabilir değişkenlere dönüştürürüm. Lütfen programın içeriğinin Computing A453 dersi olduğunu unutmayın. Ayrıca, işimi benim için yapmamı istemediğimi hatırlıyorum, diğer 2 görevi tamamladım, ve tüm mantık ve görev 3 için planlama yapıyorum. Bu dersi verene kadar sadece 2 hafta kaldı ve benim gibi yeni başlayanlar için veri okuyabilecek ve üzerine yazabilecek kodları çalıştırmaya çalışmak son derece zordur.Okuma ve Üzerine Yazma .CSV dosya verileri

with open('results.csv', 'a', newline='') as fp: 
    g = csv.writer(fp, delimiter=',') 
    data = [[name, score, classroom]] 
    g.writerows(data) 
fp.close() 
# Do the reading 
result = open('results.csv', 'r') 
reader = csv.reader(result) 
new_rows_list = [] 
for row in reader: 
    if row[2] == name: 
     if row[2] < score: 
      result.close() 
      file2 = open('results.csv', 'wb') 
      writer = csv.writer(file2) 
      new_row = [row[2], row[2], name, score, classnumber] 
      new_rows_list.append(new_row) 
      file2.close() 

Şu anda bu kod dosyayı okur, ancak ben de istediğim şekilde değil. Kullanıcının "adı" nı kayıt altına almasını istiyorum (.csv dosyası içinde). Bunu yapmak yerine, bütün satırı bir bütün olarak okur, ki bu sadece kullanıcının ismine nasıl yalıtılacağını bilmiyorum. İsim Puan sınıf numarası Jor 0 2 Jor 0 2 Jor Ben böyle görünüyor elde edeceğiniz sanıyorum 1 2

cevap

2

:

İşte

.CSV dosyasındaki veriler

Jacob, 14, B sınıfı,

Ve o Numara 3 bir dizedir.

Eğer durum buysa, String.split() sizin cevabınızdır.

String.split() sizin durumda, bir argüman olarak virgül (virgülle Ayrılmış Değerler) bir karakter alır ve dizede o karakterin her örneği her şeyi içine alan bir dizi döndürür. Eğer programda veri olarak sonuçlarını kullanmak istiyorsanız Oradan

, sen (gibi şamandıra (x) veya int (x))

istediğiniz veri türüne değerleri kullanması gereklidir Umarım bu yardımcı olur