Skip to content

Instantly share code, notes, and snippets.

@Bundi-py
Last active March 4, 2020 08:49
Show Gist options
  • Save Bundi-py/3bb78fb5dcee47beb2772786fa912e06 to your computer and use it in GitHub Desktop.
Save Bundi-py/3bb78fb5dcee47beb2772786fa912e06 to your computer and use it in GitHub Desktop.
# Piton koristi # znak da obeleži početak komentara. Komentar se nastavlja od tog znaka do kraja reda.
# Napravi program koji uklanja sve komentare iz python izvornog koda. Sačuvaj modifikovani fajl pod novim imenom.
# Imena ulaznog i izlaznog fajla treba da unese korisnik u komandnoj liniji. Obezbedi da program prijavi grešku
# ukoliko ima problem da pristupi jednom od fajlova.
import sys
# Provera da su dati svi argumenti.
if len(sys.argv) != 3:
print("Unesi ime fajla čije komentare brišeš i ime za novi fajl. Npr. >> 27.py komentari.py bez.txt")
quit()
try:
with open(sys.argv[1], 'r') as f:
redovi = f.readlines()
with open(sys.argv[2], 'w') as g:
for red in redovi:
red = red.split('#')
obrishi = red[0].rstrip()
g.writelines(obrishi)
g.writelines('\n')
except:
print("Greška pri učitavanju fajla.")
quit()
*******************
Verzija 2.0 / Uklanja komentare i kada ima više # u istom redu.
with open('fajl1.txt', 'r') as f:
redovi = f.readlines()
with open('fajl2.txt', 'w') as g:
for red in redovi:
if len(red.strip()) == 0: # sačuvaj prazne linije
g.writelines(red)
elif red[0] == '#': # ukloni ceo red ako počinje sa #
g.writelines('\n')
elif '#' not in red: # prekopiraj red ako nema #
g.writelines(red)
else: # briši deo red desno od poslednjeg #
for i in range(len(red) -1, -1, -1):
if red[i] == '#':
red1 = red.split(red[i])
obrishi = red1[0].rstrip()
g.writelines(obrishi)
g.writelines('\n')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment