žnjžnj uto 7.5.2019 12:10

    1. Moram riješiti ovaj zadatak, ali ne razumijem kako da u pythonu pročitam zadnji red, odvojim ga dalje da dobijem zadnji element tog reda i onda to usporedim sa korisničkim unosom. Znam jedino napisat kratki kod koji čita file,podijeli file po retcima i printa zadnji redak.
    2. Napišite program koji učitava datoteku s popisom korisnika /etc/passwd. U toj su datoteci pojedini elementi retka odvojeni znakom dvotočke, a posljednji element je zadana ljuska korisnika koja se pokreće nakon njegove prijave. Program traži unos ljuske (npr. /bin/bash ili /usr/sbin/nologin), a zatim se u tekstualnu datoteku spremaju po jedno u redu imena korisnika kojima je to zadana ljuska korisnika.

Bobobo-bo Bo-bobo sri 8.5.2019 21:37

Ne treba ti zadnji red, nego zadnji podatak svakog retka. Treba ti i prvi podatak svakog retka (ime korisnika).

 

shell = input('Unesi ljusku:')

with open('/etc/passwd') as passwd, open('output.txt', 'w') as output:
    for line in passwd:
        info = line.rstrip().split(':')
        if info[-1] == shell:
            output.write(info[0] + '\n')

Bobobo-bo Bo-bobo ned 10.11.2019 20:58

Nedostaju ti razmaci na početku retka "c=a+b"

 

>>> def zbroj(a, b):
... c=a+b
  File "<stdin>", line 2
    c=a+b
    ^
IndentationError: expected an indented block

 

 Python koristi razmake za označavanje blokova (tipično 4 razmaka) pa ispravan kod izgleda ovako:

 

>>> def zbroj(a, b):
...     c=a+b
...     print("Rezultat je",c)
...
>>>

 

Rad u interaktivnom Python shellu nije za početnika pa ti preporučam besplatan JetBrainsov PyCharm Community edition.

Keops pon 10.2.2020 13:00

Nevezano za ovu temu, imam jedno pitanje pa bi radije pitao u postojećoj temi nego da otvaram novu.

Za diplomski rad koristim opensource softver u kojeg manualno ubacujem podatke iz excela i za to mi treba previše vremena s obzirom da ćemo trebati vrtiti neke oprimizacije/solvere i sl. Softver te podatke čita iz običnog file formata (bez ekstenzije). Ono što bi meni trebalo je skripta koju bi napisao vjerojatno u Pythonu koja će uzeti tražene podatke (tipa jedan stupac) i spremiti ih u obični file format. 

Djeluje mi jako jednostavno, ali znam jako malo programiranja pa mi trebaju upute kako krenuti. 

Hvala unaprijed :)

Keops pon 10.2.2020 13:33

U windows exploreru mi ne piše nikakav format, otvorim ga s notepad++ ili običnim notepadom i tu upisujem c/p data iz excela. U notepad++ ga doslovno spremim kao All Types (*.*). Softver to očita kao set podataka kojeg uzime kao sekundnu/minutnu ili satnu potrošnju energije/vode, ovisno što mu zadam.

 

Edit: znam za .csv, ali nije. Eksperimentirao sam s "pandas" libraryem u Pythonu i tamo se može spremati u .csv

Keops pon 10.2.2020 17:17

Otvorim ga s N++ i doslovno imam u prvom redu ime software-a, u drugom redu prazno i od trećeg reda pa nadalje do kojeg god reda hoću brojke koje god hoću postaviti. Softver to uzima kao pattern neke potrošnje vode/energije. 

Ali nema veze jer sam ipak uspio učitati taj pattern iz .csv datoteke pa sam sad i napisao tu mini skripticu uz pomoć pandasa. Izgleda da softver čita bilo koje podatke napisane u tom obliku. Sad sam probao i kao .txt sejvati podatke i uspio je. Hvala svejedno!