Tekoäly teki minulle python-ohjelman, joka laskee yhden projektin python-koodirivien määrän. Tällä voi katsoa hiukan, miten laaja projekti kysymyksessä on. Aloitin 8 vuotta sitten Pythonin opettelun yhdellä genetiikan ohjelmiston kehittämisellä. Sitten projekti keskeytyi ulkoisista syistä. Yritin jatkaa sitä 4 vuotta sitten. Mutta ei oiekin into syttynyt. Nyt tekoälyllä tein sen projektin merkkipohjaisesta toimintavalikoista KDE Qt6 ohjlmen. Sen käyttöliittymän se osasikin tehdä graafisena ihan mukiinmenevällä tavalla. Innostuin sitten koodaamaan lisää. Ja tavoite on saada siitä toimiva ohjelma.
Tiedän yhden genetiikan firman, joka on sanonut käyttävänsä tekoälyä pyhologeneettisen puun rakentamiseen. Ehkä toinen firma käyttää myös. Ja minäkin voisin ratkaista tuon oman ohejlmani ydintoiminnot tekoälyavusteisesti.
Tässä on python-ohjelma, joka laskee projektin python-koodirivien määrän. Se osaa eritellä kommenttirivit erikseen. Ja ei ota huomioon tyhjiä rivejä.
import os
def laske_python_rivit(hakemisto):
yhteensa_koodi = 0
yhteensa_kommentit = 0
for polku, _, tiedostot in os.walk(hakemisto):
for tiedosto in tiedostot:
if tiedosto.endswith(".py"):
tiedoston_polku = os.path.join(polku, tiedosto)
try:
with open(tiedoston_polku, 'r', encoding='utf-8') as f:
rivit = f.readlines()
koodi_rivit = 0
kommentti_rivit = 0
monirivi_kommentti = False
for rivi in rivit:
teksti = rivi.strip()
# Ohita tyhjät rivit
if not teksti:
continue
# Tarkista monirivinen kommentti (""" tai ''')
if teksti.startswith(("'''", '"""')):
if teksti.count("'''") == 2 or teksti.count('"""') == 2:
# Yhdellä rivillä alkava ja loppuva kommentti
kommentti_rivit += 1
else:
# Aloitetaan tai lopetetaan monirivinen kommentti
monirivi_kommentti = not monirivi_kommentti
kommentti_rivit += 1
continue
if monirivi_kommentti:
kommentti_rivit += 1
continue
# Yksirivinen kommentti
if teksti.startswith("#"):
kommentti_rivit += 1
else:
koodi_rivit += 1
yhteensa_koodi += koodi_rivit
yhteensa_kommentit += kommentti_rivit
print(f"{tiedosto}: {koodi_rivit} koodiriviä, {kommentti_rivit} kommenttiriviä")
except Exception as e:
print(f"Virhe tiedoston {tiedoston_polku} käsittelyssä: {e}")
print(f"\nYhteensä:")
print(f" Koodirivejä: {yhteensa_koodi}")
print(f" Kommenttirivejä: {yhteensa_kommentit}")
print(f" Yhteensä (molemmat): {yhteensa_koodi + yhteensa_kommentit}")
return yhteensa_koodi, yhteensa_kommentit
if __name__ == "__main__":
hakemisto = input("Anna hakemiston polku: ").strip()
laske_python_rivit(hakemisto)
Ja tässä on koeajo:
Yhteensä:
Koodirivejä: 290109
Kommenttirivejä: 167012
Yhteensä (molemmat): 457121
Tästä voisi kehitellä vielä lisää analytiikkaa, jos haluaa...