Plik .csv i liczby
Plik .csv i liczby
Witam,
mam do dyspozycji skrypt (w Pythonie), który po przetworzeniu bardzo specyficznych danych (obliczenia czasów trwania audycji) wypuszcza plik .csv. Treści zawarte w tymże pliku muszę z kolei włożyć do szablonu pewnego sprawozdania podsumowującego te czasy. I tu zonk - nic nie mogę zsumować bo csv otwiera się jako tekst... Co można z tym zrobić?
PS. Znaleziony tu na forum przepis (dziwny...) ze zmienianiem języka na "Angielski USA" u mnie nie zadziałał - LibreOffice 4.1.1.2.
pozdrawiam
Thalgonis
mam do dyspozycji skrypt (w Pythonie), który po przetworzeniu bardzo specyficznych danych (obliczenia czasów trwania audycji) wypuszcza plik .csv. Treści zawarte w tymże pliku muszę z kolei włożyć do szablonu pewnego sprawozdania podsumowującego te czasy. I tu zonk - nic nie mogę zsumować bo csv otwiera się jako tekst... Co można z tym zrobić?
PS. Znaleziony tu na forum przepis (dziwny...) ze zmienianiem języka na "Angielski USA" u mnie nie zadziałał - LibreOffice 4.1.1.2.
pozdrawiam
Thalgonis
LibreOffice 3.5.6.2, MacOS 10.8
Re: Plik .csv i liczby
Strzelam, może Twój problem rozwiąże funkcja WARTOŚĆ.
LibreOffice 5.1.6 (64bit)
Kubuntu 16.04 (64bit)
Wszelkie uwagi lub chęć udziału przy polonizacji LibreOffice proszę kierować na adres: pol_lo at pro.wp.pl
Kubuntu 16.04 (64bit)
Wszelkie uwagi lub chęć udziału przy polonizacji LibreOffice proszę kierować na adres: pol_lo at pro.wp.pl
Re: Plik .csv i liczby
Faktycznie - funkcja WARTOŚĆ zadziałała. Dzięki.
Ale w tzw. międzyczasie znalazłem na sieci ciekawą metodę:
1. Zaznacz komórki
2. LewyKlik/Formatuj komórki...
3. Zmień format komórki na liczbę
4. menu: Edycja/Znajdź i zamień
5. ustaw szukany ciąg na: .*
6. ustaw ciąg na jaki ma nastąpić zamana na: &
7. click: Więcej opcji
8. check: Tylko bieżące zaznaczenie
9. check: Wyrażenia regularne
10. click: zamień wszystko
Powyższa metoda jest chyba o tyle wygodniejsza w moim przypadku, że po otwarciu pliku .csv oznaczam kolumny z wartościami, które chcę przekonwertować na godziny i po chwili mogę już wykonać pełne kopiowanie w odpowiednie miejsca do arkusza sprawozdawczego.
Ale w tzw. międzyczasie znalazłem na sieci ciekawą metodę:
1. Zaznacz komórki
2. LewyKlik/Formatuj komórki...
3. Zmień format komórki na liczbę
4. menu: Edycja/Znajdź i zamień
5. ustaw szukany ciąg na: .*
6. ustaw ciąg na jaki ma nastąpić zamana na: &
7. click: Więcej opcji
8. check: Tylko bieżące zaznaczenie
9. check: Wyrażenia regularne
10. click: zamień wszystko
Powyższa metoda jest chyba o tyle wygodniejsza w moim przypadku, że po otwarciu pliku .csv oznaczam kolumny z wartościami, które chcę przekonwertować na godziny i po chwili mogę już wykonać pełne kopiowanie w odpowiednie miejsca do arkusza sprawozdawczego.
LibreOffice 3.5.6.2, MacOS 10.8
Re: Plik .csv i liczby
To jest przepis na wymuszenie traktowania ciągów cyfr z kropką (1.23) jako liczb. Zamiana .* --> & nie zmienia ciągu znaków, a tylko wymusza ponowne przeliczenie arkusza przy wymaganiu, by wynik był liczbą. Więc chyba nie o konflikt kropka <--> przecinek chodziło.Thalgo13 pisze:[...]Znaleziony tu na forum przepis (dziwny...) ze zmienianiem języka na "Angielski USA" u mnie nie zadziałał - LibreOffice 4.1.1.2
Swoją drogą przy imporcie powinno wystarczyć oznaczenie kolumny jako Standard. Jeżeli wtedy importuje się jako tekst, to znaczy, że zapis jest w jakimś sensie "dziwny". Co łatwo podejrzeć, w końcu csv jest czystym tekstem. Można by dostać jedną linijkę wyjętą godnym zaufania edytorem (np. notepad++)?
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: Plik .csv i liczby
Właśnie ten "Standard" nie zadziałał...
Nie ma na maka Notepada++ Może TextWrangler jest godnym zaufania?
Nie ma na maka Notepada++ Może TextWrangler jest godnym zaufania?
LibreOffice 3.5.6.2, MacOS 10.8
Re: Plik .csv i liczby
Ale w sensie, że o co chodzi?
Po otwarciu Calc miał każdy wiersz pliku CSV w jednej komórce? Czy dobrze dzielił na komórki, ale tylko liczby traktował jako tekst? Zwykle wszystko da się ustawić na etapie kodowania znaków i wskazywania znaku dzielącego komórki. Jeśli problemem były tylko kropki wystarczy zamienić na przecinki i już.
Po otwarciu Calc miał każdy wiersz pliku CSV w jednej komórce? Czy dobrze dzielił na komórki, ale tylko liczby traktował jako tekst? Zwykle wszystko da się ustawić na etapie kodowania znaków i wskazywania znaku dzielącego komórki. Jeśli problemem były tylko kropki wystarczy zamienić na przecinki i już.
LibreOffice 4.1, Windows 7 HP x64
Re: Plik .csv i liczby
Każdy, który sam nie zmienia kodowania ani nie robi żadnej autokorekty.Thalgo13 pisze:[...] jest godnym zaufania?
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: Plik .csv i liczby
W sumie chodziło o to, że po eksporcie do csv, w tymże pliku wszystkie komórki zawierające jakiekolwiek dane były sformatowane jako "@" (tak wyświetla "Formatuj komórki..."). Powinno być niestety w takiej formie (kolumnami) A: tekst; B: data; C: godzina; D: godzina; E: godzina.cooker0 pisze:Ale w sensie, że o co chodzi?
Po otwarciu Calc miał każdy wiersz pliku CSV w jednej komórce? Czy dobrze dzielił na komórki, ale tylko liczby traktował jako tekst? Zwykle wszystko da się ustawić na etapie kodowania znaków i wskazywania znaku dzielącego komórki. Jeśli problemem były tylko kropki wystarczy zamienić na przecinki i już.
Samo wyświetlanie zawartości arkusza jest prawidłowe - tzn. kolumny są tak podzielone jak powinny.
pozdrawiam
Thalgonis
LibreOffice 3.5.6.2, MacOS 10.8
Re: Plik .csv i liczby
To znaczy, atki (“małpki”) były w tym Pythonowym CSV, czy po eksporcie z Calca? Dla rozwiązania ważna jest postać wejścia.
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: Plik .csv i liczby
Nie, "małpki" pokazały się PO otwarciu pliku .csv ("wyprodukowanego" przez pythona) w Calcu LibreOffice. Ustawienia otwarcia są takie:Jan_J pisze:To znaczy, atki (“małpki”) były w tym Pythonowym CSV, czy po eksporcie z Calca? Dla rozwiązania ważna jest postać wejścia.
LibreOffice 3.5.6.2, MacOS 10.8
Re: Plik .csv i liczby
Więc cały czas pozostaje pytanie: jak ten plik wygląda w środku *naprawdę*.
Trzeba go obejrzeć nieformatującym edytorem tekstowym. W szczególności zaczynam podejrzewać, że daty są w nim ujęte w cudzysłowy.
Nie mam Mac-a, nie wiem jaki tam jest domyślny prosty edytorek typu notatnik. W konsoli można by zlecić cat plik.csv i obejrzeć wydruk, ale zapewne odpalić edytor będzie Ci prościej.
Trzeba go obejrzeć nieformatującym edytorem tekstowym. W szczególności zaczynam podejrzewać, że daty są w nim ujęte w cudzysłowy.
Nie mam Mac-a, nie wiem jaki tam jest domyślny prosty edytorek typu notatnik. W konsoli można by zlecić cat plik.csv i obejrzeć wydruk, ale zapewne odpalić edytor będzie Ci prościej.
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: Plik .csv i liczby
W mac OSx jest normalny terminal, komenda, którą mi podałeś wyświetla coś takiego (oczywiście to fragment - górna cześć pliku):Jan_J pisze:Więc cały czas pozostaje pytanie: jak ten plik wygląda w środku *naprawdę*.
Trzeba go obejrzeć nieformatującym edytorem tekstowym. W szczególności zaczynam podejrzewać, że daty są w nim ujęte w cudzysłowy.
Nie mam Mac-a, nie wiem jaki tam jest domyślny prosty edytorek typu notatnik. W konsoli można by zlecić cat plik.csv i obejrzeć wydruk, ale zapewne odpalić edytor będzie Ci prościej.
Komp:Folder User$ cat out.csv
CV – wywiad – Bracia;2013-7-5;19:30:26;19:49:32;00:19:06
;2013-7-6;10:38:38;10:57:44;00:19:06
;2013-7-6;18:20:45;18:39:51;00:19:06
;2013-7-7;10:40:29;10:59:35;00:19:06
;2013-7-10;01:00:07;01:19:13;00:19:06
;2013-7-12;01:03:00;01:22:06;00:19:06
CV – wywiad – M. Siudym;2013-7-12;19:30:03;19:46:33;00:16:30
;2013-7-13;10:41:51;10:58:21;00:16:30
;2013-7-13;18:20:59;18:37:29;00:16:30
;2013-7-14;10:40:00;10:56:30;00:16:30
;2013-7-17;01:00:55;01:17:25;00:16:30
LibreOffice 3.5.6.2, MacOS 10.8
Re: Plik .csv i liczby
Tak, MacOS X jest (w pewnym uproszczeniu) uniksopodobnym systemem z linii BSD. Dlatego wspomniałem o cat.Thalgo13 pisze:W mac OSx jest normalny terminal[...]
W moich systemach (jak w stopce, plus Libre 4.1 Portable na Windows 7) Twoje dane wczytują się poprawnie. Daty i czasy są rozpoznawane, da się na nich operować.
Za to zapis csv przy domyślnych ustawieniach (w Libre) bierze wszystkie wartości w cudzysłowy. Aby tego uniknąć, warto przy eksporcie oznaczyć [x] Edytuj ustawienia filtra.
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: Plik .csv i liczby
A można jakoś zapisać tak CSV by nie było w nim cudzysłowów ani apostrofu by tekst był traktowany jak liczby?
LibreOffice 6.1.2.1 na Windows 10
Re: Plik .csv i liczby
Można. W formularzu zapisu [x] edytuj ustawienia filtra; w starszych wersjach był format "tekst zakodowany".
Przy zapisie wymuszanym programowo (przez funkcję albo makro) da się ustawić programowo właściwości filtra jako opcję funkcji zapisującej.
Przy zapisie wymuszanym programowo (przez funkcję albo makro) da się ustawić programowo właściwości filtra jako opcję funkcji zapisującej.
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)