Úprava výstupu data Python – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama

Úprava výstupu data Python – Python – Fórum – Programujte.comÚprava výstupu data Python – Python – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Jirka
~ Anonymní uživatel
293 příspěvků
23. 10. 2016   #1
-
0
-

Zdravím přátelé.

Válí se mi doma nevyužit cubieboard a napadlo mě, že si zkusím udělat malou Weather Station.

Našel jsem example, který je vytvořen v pythonu.

Dostal jsem se do fáze, že mi stanice chodí, ale mám problém s výpisem datumu. Mám výstup: neděle říjen 23 2016

A problém s háčky a čárky. Používám kódování cs_CZ.utf8. Problém je ale pouze zde, zbylý text se mi zobrazuje správně.

V config.py jsem našel řádek: DateLocale a ten jsem upravil na: 

DateLocale='cs_CZ.UTF-8'

Potom v souboru PyQtPiClock.py je výstup:

dy = "{0:%I:%M %p}".format(now)
    if dy != pdy:
        pdy = dy
        datey2.setText(dy)

    if now.day != lastday:
        lastday = now.day
        # date
        sup = 'th'
        if (now.day == 1 or now.day == 21 or now.day == 31):
            sup = 'st'
        if (now.day == 2 or now.day == 22):
            sup = 'nd'
        if (now.day == 3 or now.day == 23):
            sup = 'rd'
        if Config.DateLocale != "":
            sup = ""
        ds = "{0:%A %B} {0.day}<sup>{1}</sup> {0.year}".format(now, sup)
        datex.setText(ds)
        datex2.setText(ds)

A problém vidím zde:

ds = "{0:%A %B} {0.day}<sup>{1}</sup> {0.year}".format(now, sup)

Tak mě zajímá, jestli někdo neporadí, jak nastavit ten výstup na:

neděle 23. října 2016

a s dobrým kódováním. Díky moc

Nahlásit jako SPAM
IP: 89.102.71.–
Reklama
Reklama
Jirka
~ Anonymní uživatel
293 příspěvků
23. 10. 2016   #2
-
0
-

Ok. Takže jsem upravil tvar na:

Neděle 23.října 2016

Ale to kódování se mi nepodařilo opravit. 

ds = "{0:%A} {0:%d}.{0:%B} {0.year}".format(now)
Nahlásit jako SPAM
IP: 89.102.71.–
Kit+12
Guru
23. 10. 2016   #3
-
0
-

#1 Jirka
Zkus na začátek skriptu napsat tohle: 

#!/usr/bin/env python
# -*- coding: utf-8 -*-
Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Jirka
~ Anonymní uživatel
293 příspěvků
23. 10. 2016   #4
-
0
-

Připsal jsem a nic se nestalo.

Ještě jsem zjistil, že do souboru PyQtPiClock.py vstupuje tato proměná DateLocale

if Config.DateLocale != "":
        try:
            locale.setlocale(locale.LC_TIME, Config.DateLocale)
        except:
            pass

Kterou jsem nastavil v Config.py

# The Python Locale for date/time (locale.setlocale)
#  '' for default Pi Setting
# Locales must be installed in your Pi.. to check what is installed
# locale -a
# to install locales
# sudo dpkg-reconfigure locales
DateLocale = 'cs_CZ.utf8'
Nahlásit jako SPAM
IP: 89.102.71.–
Jirka
~ Anonymní uživatel
293 příspěvků
23. 10. 2016   #5
-
0
-

#4 Jirka
A pokud zavolám v terminálu:

locale -a 

 

cubie@Cubian:~$ locale -a
C
cs_CZ.utf8
C.UTF-8
POSIX
Nahlásit jako SPAM
IP: 89.102.71.–
Jirka
~ Anonymní uživatel
293 příspěvků
23. 10. 2016   #6
-
0
-

Takže jsem si ještě vypsal: locale

cubie@Cubian:~$ locale
LANG=cs_CZ.utf8
LANGUAGE=cs_CZ.utf8
LC_CTYPE="cs_CZ.utf8"
LC_NUMERIC="cs_CZ.utf8"
LC_TIME="cs_CZ.utf8"
LC_COLLATE="cs_CZ.utf8"
LC_MONETARY="cs_CZ.utf8"
LC_MESSAGES="cs_CZ.utf8"
LC_PAPER="cs_CZ.utf8"
LC_NAME="cs_CZ.utf8"
LC_ADDRESS="cs_CZ.utf8"
LC_TELEPHONE="cs_CZ.utf8"
LC_MEASUREMENT="cs_CZ.utf8"
LC_IDENTIFICATION="cs_CZ.utf8"
LC_ALL=
cubie@Cubian:~$ 

a locale -a

cubie@Cubian:~$ locale -a
C
cs_CZ
cs_CZ.iso88592
cs_CZ.utf8
C.UTF-8
czech
POSIX
cubie@Cubian:~$

A pokud nyní nastavím: DateLocale = 'czech'

Tak po zapnutí to už není úplně rozsypané: 

Místo neděle mám Nedíle a říjen místo Ř mám znak průměru.

Nahlásit jako SPAM
IP: 89.102.71.–
George
~ Anonymní uživatel
31 příspěvků
5. 3. 2017   #7
-
0
-

#6 Jirka
Taky mě to chvilku trvalo. No v PiClock zadáváš české výrazy do unicode jako u'str'. Ale v hlavičce je UTF8.

ds = "{0:%A %B} {0.day}<sup>{1}</sup> {0.year}".format(now, sup)

unicode_version = ds.decode('utf-8')

Nahlásit jako SPAM
IP: 77.48.13.–
George
~ Anonymní uživatel
31 příspěvků
14. 7. 2017   #8
-
0
-

   

        # ds = "{0:%A %B} {0.day}<sup>{1}</sup> {0.year}".format(now, sup)
        
        ds = "{0:%A, %x}".format(now)
        ds_utf8 = ds.decode('utf-8')
        datex.setText(ds_utf8)
        datex2.setText(ds_utf8)
Nahlásit jako SPAM
IP: 147.228.209.–
Zjistit počet nových příspěvků

Přidej příspěvek

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 106 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032017 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý