Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: beer 24. 05. 2017, 17:42:40

Název: Python - načtení obsahu souboru
Přispěvatel: beer 24. 05. 2017, 17:42:40
V pythonu se moc nevyznám, rád bych ve skriptu použil načtení obsahu souboru, se kterým bych pak mohl pracovat.

Kód: [Vybrat]
def get_whois():
    open('/cesta/whois.txt', encoding='utf-8')

Kód: [Vybrat]
get_whois()
tohle mi nefunguje, co dělám špatně?
Název: Re:Python - načtení obsahu souboru
Přispěvatel: Ivan Nový 24. 05. 2017, 17:54:13
V pythonu se moc nevyznám, rád bych ve skriptu použil načtení obsahu souboru, se kterým bych pak mohl pracovat.

Kód: [Vybrat]
def get_whois():
    open('/cesta/whois.txt', encoding='utf-8')

Kód: [Vybrat]
get_whois()
tohle mi nefunguje, co dělám špatně?

Kód: [Vybrat]
def get_whois():
    with open('/cesta/whois.txt', encoding='utf-8') as f
          return f.read()

Kód: [Vybrat]
get_whois()
Název: Re:Python - načtení obsahu souboru
Přispěvatel: 3ugeene 24. 05. 2017, 17:55:06
Tyjo, takhle se dneska programuje? Co takhle si najit nejaky zakladni info o otevirani souboru?


Kód: [Vybrat]
with open('filename') as f:
    lines = f.readlines()
Název: Re:Python - načtení obsahu souboru
Přispěvatel: beer 24. 05. 2017, 18:29:24
Jedna variatna hlásí:

IndentationError: expected an indented block                                                                     

druhá

yntaxError: invalid syntax

Jo, je tam python 2,7
Název: Re:Python - načtení obsahu souboru
Přispěvatel: gll 24. 05. 2017, 18:35:37
Kód: [Vybrat]
def get_whois():
    with open('/cesta/whois.txt', encoding='utf-8') as f
          return f.read()

Kód: [Vybrat]
get_whois()

chybí dvojtečka

Kód: [Vybrat]
def get_whois():
    with open('/cesta/whois.txt', encoding='utf-8') as f:
          return f.read()
Název: Re:Python - načtení obsahu souboru
Přispěvatel: Bugs 24. 05. 2017, 20:12:53
Kód: [Vybrat]
def get_whois():
    with open('/cesta/whois.txt', encoding='utf-8') as f
          return f.read()

Toto je syntaxe Pythonu 3, nepůjde mu to spustit. V Pythonu 2.7 je open bez parametru encoding. Ale určitě doporučuju začít programovat v Pythonu 3, pokud je možno ho na stroj doinstalovat.
Název: Re:Python - načtení obsahu souboru
Přispěvatel: Ondrej 25. 05. 2017, 13:56:18
google neznas? Vubec toho tam neni trilion.
Název: Re:Python - načtení obsahu souboru
Přispěvatel: beer 25. 05. 2017, 15:41:54
google neznas? Vubec toho tam neni trilion.

Google znám, ale neznám Python.

Kód: [Vybrat]
line 75

    if __name__ == "__main__":

    ^                                         

IndentationError: expected an indented block

Co to způsobuje?


   
Název: Re:Python - načtení obsahu souboru
Přispěvatel: snuff 25. 05. 2017, 15:56:04
indented block znamena, ze mas zle "odsadenie"  v kode..
V pythone nemas begin a end, ale ze kod patri k podmienke if, alebo k cyklu sa urcuje pomocou toho, ze ma od zaciatku riadku rovnaky pocet medzier...

Nespravne:


if condition:
do this
else:
do this


Spravne:
if condition:
    do this
else:
    do this
Název: Re:Python - načtení obsahu souboru
Přispěvatel: gll 25. 05. 2017, 15:58:40
Kód: [Vybrat]
line 75

    if __name__ == "__main__":

    ^                                         

IndentationError: expected an indented block

Co to způsobuje?


 

za : musí být odsazený blok, nějaký příkaz nebo jen pass.

Kód: [Vybrat]
if __name__ == "__main__":
    pass
Název: Re:Python - načtení obsahu souboru
Přispěvatel: beer 26. 05. 2017, 17:51:04
Díky
Název: Re:Python - načtení obsahu souboru
Přispěvatel: Ondrej 26. 05. 2017, 19:30:49
google neznas? Vubec toho tam neni trilion.

Google znám, ale neznám Python.

Kód: [Vybrat]
line 75

    if __name__ == "__main__":

    ^                                         

IndentationError: expected an indented block

Co to způsobuje?


 
Tak očividně neznáš, jinak by ses neptal na tyhle věci.
Název: Re:Python - načtení obsahu souboru
Přispěvatel: ByCzech 26. 05. 2017, 20:54:30
Koukám že na trhu vyloženě chybí kniha "Jak se stát programátorem snadno a rychle" ;D
Název: Re:Python - načtení obsahu souboru
Přispěvatel: (uetoyo) někdy haha 26. 05. 2017, 21:04:55
Koukám že Python použil svou obranu: odsazení. Programovat stylem pokus --omyl, není dobrá strategie.
Název: Re:Python - načtení obsahu souboru
Přispěvatel: beer 26. 05. 2017, 21:14:37

Tak očividně neznáš, jinak by ses neptal na tyhle věci.


Poslouchej, a ty sem píšeš vlastně proč? Abys pomáhal, nebo aby sis zvyšoval sebevědomí na ostatních, jakej si borec? UTFG píše na fórech jen d*.. Představ si, že sem to vyhledával a byly tam takové rady jako mix tabulátorů a mezer, většina výsledků v angličtině, nebo nějaké sáhodlouhé články. OK, tak jsem zkoušel nahrazovat v dokumentu tabulátory mezerama, ale co konkrétně je tam špatně, jsem z toho nepochopil a pochopil jsem to až z odpovědi zde na fóru. Ty přijdeš, a neporadíš, jen útočíš. Ale nejsi zde sám. Jsou tací, co poradí, ale zároveň dodají něco, co jim dává pocit převahy.
Název: Re:Python - načtení obsahu souboru
Přispěvatel: beer 26. 05. 2017, 21:26:30
Koukám že Python použil svou obranu: odsazení. Programovat stylem pokus --omyl, není dobrá strategie.


Nesnažím se stát programátorem v pythonu (zatím), nejsem ani aǰťák, i když mne linux baví. Jen jsem chtěl rozchodit jeden již hotový script. Načtení souboru jsem potřeboval proto, že na openwrt nemám whois příkaz. Ten skript mi na ubuntu funguje, a tam to řešit nemusím, jen jsem chtěl prostě přijít na tohle.


A stejně se to nepovedlo, protože jen něco opravím, objeví se jiná chyba. O pythonu jsem do této doby věděl pouze to, že existuje. Když bude čas, tak si o něm něco přečtu.
Název: Re:Python - načtení obsahu souboru
Přispěvatel: Wavelet 26. 05. 2017, 22:11:54
Neberte si to osobně, já jsem také začínal a každou chybu jsem musel někde dohledat. Základem ale je, nejdříve si přečíst něco o jazyku, který chci používat. Pak byste nemohl být překvapen z toho, že Python je citlivý na indentaci. Takhle po slepu upravovat program vede k hodně špatným návykům -- pokud se vám to nepovedlo, je to jen dobře. Příště by vám to mohlo, obrazně řečeno, ustřelit nohy.
Název: Re:Python - načtení obsahu souboru
Přispěvatel: Cikáda 27. 05. 2017, 00:11:20
Koukám že Python použil svou obranu: odsazení. Programovat stylem pokus --omyl, není dobrá strategie.


Nesnažím se stát programátorem v pythonu (zatím), nejsem ani aǰťák, i když mne linux baví. Jen jsem chtěl rozchodit jeden již hotový script. Načtení souboru jsem potřeboval proto, že na openwrt nemám whois příkaz. Ten skript mi na ubuntu funguje, a tam to řešit nemusím, jen jsem chtěl prostě přijít na tohle.


A stejně se to nepovedlo, protože jen něco opravím, objeví se jiná chyba. O pythonu jsem do této doby věděl pouze to, že existuje. Když bude čas, tak si o něm něco přečtu.

Kdyby náhodou, tak něco k Pythonu je i tady volně ke stažení - https://www.root.cz/knihy/oddeleni/vyvoj-a-knihy-pro-vyvojare/ (kdybys o tom nevěděl - jen pozor na rozdíly Python 2.7 x Python 3 :) )