Nahrazení slova jiným slovem – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Nahrazení slova jiným slovem – Python – Fórum – Programujte.comNahrazení slova jiným slovem – Python – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
sumik220
Duch
25. 3. 2017   #1
-
0
-

Dobrý den,

předem se omlouvám za zavádějící název. Mám tento problém:

import time
den = time.strftime("%A")
print"",den

Potřeboval bych, aby když to pak vypíše ten den, tak aby to nenapsalo "Saturday", ale např "Sobota".

Nějaké nápady? Díky 

Nahlásit jako SPAM
IP: 62.245.125.–
gna
~ Anonymní uživatel
1206 příspěvků
26. 3. 2017   #2
-
0
-

 Time respektuje locale (místní nastavení)

>>> import time, locale
>>> time.strftime("%A")
'Sunday'
>>> locale.setlocale(locale.LC_TIME, "cs_CZ.utf8")
'cs_CZ.utf8'
>>> time.strftime("%A")
'Neděle'

Pozor na to, že to je systémová záležitost. Nenastavíš locale na něco, co systém nezná (nemá nainstalované).
Taky se ten název locale může lišit. (Asi jen Windows nedodržuje tento formát. Mělo by tam fungovat třeba "czech"). Pokud zadáš prázdný řetězec, tak se použije systémové locale (respektive to, se kterým byl program spuštěn).

Nahlásit jako SPAM
IP: 213.211.51.–
sumik220
Duch
26. 3. 2017   #3
-
0
-

Díky, funguje to, ale po zkompilovani pyinstallerem se znaky s diakritikou rozhodi na neco jineho. Nějaká rada prosím? Díky

Nahlásit jako SPAM
IP: 62.245.125.–
sumik220
Duch
26. 3. 2017   #4
-
0
-

Nebo ještě jinak:

>>> import time, locale
>>> time.strftime("%A")
'Sunday'
>>> locale.setlocale(locale.LC_TIME, "")
'Czech_Czech Republic.1250'
>>> time.strftime("%A")
'ned\xecle'
>>> 

Nahlásit jako SPAM
IP: 62.245.125.–
gna
~ Anonymní uživatel
1206 příspěvků
26. 3. 2017   #5
-
0
-

Záleží na tom, co s tím datem chceš dělat. V tomhle případě by mělo stačit místo LC_TIME nastavit LC_ALL.

Nahlásit jako SPAM
IP: 213.211.51.–
sumik220
Duch
26. 3. 2017   #6
-
0
-

#5 gna
Nope, pořád problém přetrvává:

>>> import time, locale
>>> time.strftime("%A")
'Sunday'
>>> locale.setlocale(locale.LC_ALL, "")
'Czech_Czech Republic.1250'
>>> time.strftime("%A")
'ned\xecle'
>>> 

Nahlásit jako SPAM
IP: 62.245.125.–
peter
~ Anonymní uživatel
3618 příspěvků
27. 3. 2017   #7
-
0
-

co tam pridat jeste encode nebo decode?
a.decode("windows-1250")
a.decode("utf-8")

http://www.py.cz/Cestina3X - tady treba pouzivaji jen  'czech'
locale.setlocale(locale.LC_ALL,'czech')
 

Nahlásit jako SPAM
IP: 2001:718:2601:26c:f522:53...–
peter
~ Anonymní uživatel
3618 příspěvků
27. 3. 2017   #8
-
0
-

to decode encode mas tez v tom linku na dokumentaci na tamte strance:
https://docs.python.org/…de.html ;

>>> b'\x80abc'.decode("utf-8", "strict")
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
UnicodeDecodeError: 'utf8' codec can't decode byte 0x80 in position 0:
                    unexpected code byte
>>> b'\x80abc'.decode("utf-8", "replace")
'\ufffdabc'
>>> b'\x80abc'.decode("utf-8", "ignore")
'abc'
Nahlásit jako SPAM
IP: 2001:718:2601:26c:f522:53...–
sumik220
Duch
27. 3. 2017   #9
-
0
-

#8 peter
Na stránce jsem se toho moc nedočetl.

404 Not Found

Nahlásit jako SPAM
IP: 62.245.125.–
gna
~ Anonymní uživatel
1206 příspěvků
27. 3. 2017   #10
-
0
-

Ten řetězec je správně, takhle ho jen zobrazí interaktivní Python. Když ho dáš do printu, tak by měl být správně.

>>> time.strftime("%A")
'pond\xecl\xed'
>>> print time.strftime("%A")
pondělí

PS: Hned jsem nepostřehl, že používáš Python 2. Raději to k dotazům vždy piš.

Nahlásit jako SPAM
IP: 213.211.51.–
sumik220
Duch
27. 3. 2017   #11
-
0
-

#10 gna
Děkuji, už mi to šlape. Jsem začátečník a psal jsem v tom, čím nás ve škole krmí a netušil, že něco jako Python 2 je.

Nahlásit jako SPAM
IP: 62.245.125.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×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, 10 hostů

 

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