Fórum Root.cz

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

Název: Python - načtení obsahu souboru
Přispěvatel: beer kdy 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.

def get_whois():
    open('/cesta/whois.txt', encoding='utf-8')


get_whois()

tohle mi nefunguje, co dělám špatně?
Název: Re:Python - načtení obsahu souboru
Přispěvatel: Ivan Nový kdy 24. 05. 2017, 17:54:13
Citace od: beer kdy 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.

def get_whois():
    open('/cesta/whois.txt', encoding='utf-8')


get_whois()

tohle mi nefunguje, co dělám špatně?


def get_whois():
    with open('/cesta/whois.txt', encoding='utf-8') as f
          return f.read()


get_whois()

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


with open('filename') as f:
    lines = f.readlines()
Název: Re:Python - načtení obsahu souboru
Přispěvatel: beer kdy 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 kdy 24. 05. 2017, 18:35:37
Citace od: Ivan Nový kdy 24. 05. 2017, 17:54:13

def get_whois():
    with open('/cesta/whois.txt', encoding='utf-8') as f
          return f.read()


get_whois()

chybí dvojtečka


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 kdy 24. 05. 2017, 20:12:53

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 kdy 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 kdy 25. 05. 2017, 15:41:54
Citace od: Ondrej kdy 25. 05. 2017, 13:56:18
google neznas? Vubec toho tam neni trilion.

Google znám, ale neznám Python.

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 kdy 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 kdy 25. 05. 2017, 15:58:40
Citace od: beer kdy 25. 05. 2017, 15:41:54
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.


if __name__ == "__main__":
    pass

Název: Re:Python - načtení obsahu souboru
Přispěvatel: beer kdy 26. 05. 2017, 17:51:04
Díky
Název: Re:Python - načtení obsahu souboru
Přispěvatel: Ondrej kdy 26. 05. 2017, 19:30:49
Citace od: beer kdy 25. 05. 2017, 15:41:54
Citace od: Ondrej kdy 25. 05. 2017, 13:56:18
google neznas? Vubec toho tam neni trilion.

Google znám, ale neznám Python.

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 kdy 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 kdy 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 kdy 26. 05. 2017, 21:14:37

Citace od: Ondrej kdy 26. 05. 2017, 19:30:49
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 kdy 26. 05. 2017, 21:26:30
Citace od: (uetoyo) někdy haha kdy 26. 05. 2017, 21:04:55
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 kdy 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 kdy 27. 05. 2017, 00:11:20
Citace od: beer kdy 26. 05. 2017, 21:26:30
Citace od: (uetoyo) někdy haha kdy 26. 05. 2017, 21:04:55
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 :) )