3 değişken için split kullanımı

Benim txt dosyamda “D:(tab)timevalue(tab)data” şeklinde datalarım var ve bunları grafik olarak çizdirmek istiyorum.

            for line in lines:
             if len(line) > 1:
             rubbish,time,data= line.split(' ')
             rubbishData.append(rubbish)
             timeecg.append(float(time))
             dataecg.append(float(data))

bu kodu çalıştırdığımda
ValueError: not enough values to unpack (expected 3, got 1)
hatası alıyorum.

txt dosyasında tab yerine başka bir karakter kullanılan bir satır olabilir mi?

Ayrıca

bölümünde

line.split('\t')

deneyebilir misin?

ValueError: too many values to unpack (expected 3) hatası veriyor.

    graph_data = open("deneme.txt", "r").read()
    rowdata = graph_data.split('\n')
    rubbishdata = []
    timeecg = []
    dataecg = []

    for line in rowdata:
        if len(line) > 1:

            rubbish,timed,datad= line.split(',')
            rubbishdata.append(rubbish)
            timeecg.append(float(timed))
            dataecg.append(float(datad))

İlk başta satırları ayırırken ‘/n’ olarak ayırıyordum. print ile yazdırarak incelediğimde “1/nD:” gibi ayırması gereken kısımı ayırmadığı için değişkeni eşleştiremediğini fark ettim.Ayrıca tab ile boşluk bırakarak bir uygulama denediğimde gördüm ki bazen boşluk olarak da eleman atayabiliyor bu sebeple virgül ile ayırdım.
İnternette blduğum kodda 2 data için ayırmayı ‘/n’ şeklinde yapmış olmama rağmen böyle bir problemle karşılaşmamıştım nedeni ne olabilir?

Dosyayi yazan da sensen klasik “kendi cozumum” hatasina dusmussun. Python’dan Python’a veri kaydedip aktarmak icin pickle var, yine ayni sekilde veya diller arasinda da genelde json, xml veya csv kullaniliyor. (Bunlarin hepsi ayni isme sahip Python modulleri bu arada.) Bunlardan birini kullansaydin hem daha az hem de daha okunabilir kodla, sorunsuz bir sekilde cozulecekti problem. (Ogrenmek veya denemek icin yapiyorsan ayri.)

Yani aslinda data dosyasiyla ilgili soyledigin tek sey, ““D:(tab)timevalue(tab)data” şeklinde datalarım var”, yanlisti. Yani sana yardim etmemizin olanagi yoktu.

Bu kadar aciklamayla ugrasacagina data dosyasindan bir parca ornek (ve belki onu okumaya calisan bir kod) gosterseydin hem herkesin isi kolaylasirdi, hem de hatayi saniyesinde bulurduk.

Datayı arm kullanarak txt dosyası formatında alıyorum.

Programlama ile uğraşımın çok başındayım, o yüzden bilgisizliğim çok fazla. Öneride bulunduğunuz için teşekkür ederim. Söylemiş olduğunuzu detaylı olarak araştıracağım.

Data dosyasından örnek göndermeyi düşünemedim. Zaman kaybıyla aklıma kazımış oldum.

Belli, sikinti degil, rica ederim. O zaman sunu da ekleyeyim: Programlar arasi bilgi alisverisi icin JSON bu su aralar birinci tercih. XML, tekrarli oldugu icin ve elle editlemesi daha zor oldugu icin daha az kullaniliyor.

2 boyutlu datasetler icin CSV var ama kendisi bir felaket ve standardi bile yok. Ama, hemen her data analiz programi (Excel mesela) destekliyor. Kimseye “aa CSV de neymis, hemen JSON’a cevir onu” dendigini duymadim.

=) O yuzden soyledim zaten. Yapilmaya calisilan seyi, bunun icin yazilmis kodu ve bu kodun uzerinde calistigi datayi gormeden birine yardim etmek cok zor. Muneccimlik sadece herkesin ayni seviyede veya ayni problemde oldugu baslangic ve odev forumlarinda calisiyor. Yola cikip biraz ilerlediginde karsina cikan sorunlar sana ve yoluna ozel oluyor; bu sorunlari tanitmak ve yardim etmeye calisan insanlarin isini kolaylastirmak icin ozel efor sarf etmezsen sadece seninle birebir ayni yoldan gecmis ve ayni problemle karsilasmis insanlardan yardim alabiliyorsun. Oysa iyi programcilar, kendi alakalari ve bilgileri disindaki problemleri de rahatlikla cozebilirler.

1 Beğeni