Strona główna Polish Python Coders Group
   Strona główna   Pomoc Zaloguj się Rejestracja  
Witamy, Gość. Zaloguj się lub zarejestruj.
Czy dotarł do Ciebie email aktywacyjny?

Zaloguj się podając nazwę użytkownika, hasło i długość sesji

Aktualności: PyStok #42 - wystąpią Łukasz Langa i Dominik Kozaczko
Szukaj Szukaj
Strony: [1]   Do dołu
Drukuj
Wątek: Zamiana znaków.  (Przeczytany 187 razy)
« : 18:03 16/04/19 »
pawlo392 Offline
Hello World!

Zobacz profil
*

Reputacja: 0
Wiadomości: 20


Mamy plik tekstowy który posiada dane liczbowe wymieniane np:
2,3,4,,5,4,5
1,2,3.4,4.4,,2
etc.
Chcę napisać kod który bedzię "brał " ten plik tekstowy, przecinki zamieni na spacje, a brak danych ,, zamieni na zero. I z pierwszym sobie poradziłem :
Kod
import linecache
with open("dane.txt", 'r') as f:
  for line in f:
      print(line.replace(","," "))
Ale zastanawiam się jak dodać aby zamieniał ,, na zero. Mógłbym przepuścić dwa razy przez pętle ale nie bedzie to za szybkie.
UPDATE:
Wystarczyło :
Kod
 print(line.replace(",,"," 0 ").replace(","," "))
 
Jak zmiany zapisaywać do nowego pliku?
Zapisane
« Odpowiedz #1 : 22:47 16/04/19 »
sig Offline
Professional Python User

Zobacz profil
***

Reputacja: 91
Wiadomości: 434


Zamiast print-ować zapisujesz do jakieś zmiennej, wtedy możesz zapisać do pliku, o czym poczytasz np tu https://rk.edu.pl/pl/operowanie-na-plikach-w-pythonie/
Zapisane
« Odpowiedz #2 : 16:35 17/04/19 »
Guaz Offline
Expert Python User

Zobacz profil
****

Reputacja: 72
Płeć: Mężczyzna
Wiadomości: 544


Zrób sobie testową listę:
Kod
#~Jakiś input
test_list = mine_input.split(",") #~ Dzielisz według przecinków i tworzysz listę.
 
Zobacz co się dzieje w przypadku dwóch przecinków pod rząd, jak stworzy ci jakiś dziwny element, to teraz zamień go na zero, a resztę na cyfry Uśmiech
Zapisane

Python 3.5+ / Mint

Daje wędkę zamiast ryby. Chyba że ktoś się chce czegoś nauczyć, wtedy chętnie pomogę każdemu.
Za rybę niestety trzeba zapłacić Z politowaniem.
« Odpowiedz #3 : 07:55 30/04/19 »
TomekW Offline
Hello World!

Zobacz profil
*

Reputacja: 1
Wiadomości: 13


@pawlo392
Trochę ten twój sposób murzyński, bo jak będziesz miał np:
9,5,7,,,,,11
To cała twoja metoda się wali, wyjdą kwiatki, najlepiej zrobić dokładnie tak jak opisał Guaz,
posliplituj po ',' a potem przeiteruj listę i każdy pusty element zamień na '0'
Zapisane
Strony: [1]   Do góry
Drukuj
Skocz do:  

© 2007 - 2019 Polish Python Coders Group
Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines | Theme by PixelSlot