Merkkijonon editointi hakemistosta

Onko jokin ohjelma ( helppokäyttöinen ), joka etsii tietyn merkkijonon ( myös HTML-tekstistä ) ja korvaa sen uudella.

Ohjelman tulisi olla sellainen että se hakee merkkijonon hakemistosta ja hakemiston alihakemistosta jne riippumatta missä tiedostossa tekstijono esiintyy.
4225
Äänestä

Muut lukivat myös

Vastaukset 4

Vanhimmat

Jos käyttöympäristönä on UNIX/Linux, niin onnistunee helposti grepillä, sedillä, awkilla, perlillä, ..

Muista käyttöjärjestelmistä en tiedä miten homma tehdään niissä.

Äänestä
  • oooooooooo :(

    Äänestä

Oikeastaan tämä kuuluiis ohjelmointialueelle mutta oli niin tylsää.

Tämän tapaiset pikkuhommelit onnistuvat helposti pyyttonilla eikä tarvitse olla kummoinen ohjelmointiguru :)

Elikkäs tämmöinen pieni pätkä tekee periaatteessa mitä haluat ja vähän enemmänkin koska voi määritellä tiedostopäätteet vain mitkä käsitellään.. pakko ei toki ole arvelin sen vain olevan noin kätevämpi.

Tietty jos pythonia ei ole eikä jaksa asentaa joutuu muunlaisiin konsteihin turvautumaan;)

Kunhan pythoni löytyy ohjelman voi ajaa tyylillä:
Keijo.py "c:\mun hakemisto" "Keijo on mun idoli" "Keijo sucks!!!"
.. jonka jälkeen ohjelma kahlaa "c:\\mun hakemisto" lähtien kaikki hakemistot alihakemistoineen ja korvaa kaikista .txt ja .htm -päätteisistä tiedostoista merkkijonot "Keijo on mun idoli" merkkijonolla "Keijo sucks!!!"

Varotuksena että "ohjelmasta" uupuu ylimääräset virhetarkistukset sun muut kuten käyttöoikeus jne seikat. Tosin ne olisi vain pieni lisä mutta jätin pois sotkemasta.

import os, sys

def Keijo(cur_dir):
listing = os.listdir(cur_dir)
for item in listing:
filename = os.path.join(cur_dir, item)
if os.path.isdir(filename):
Keijo(filename)
elif os.path.splitext(filename)[-1] in (".txt", ".htm"):
data = file(filename, 'r').read()
file(filename, 'w').write(data.replace(str1, str2))

if __name__ == '__main__':
global str1, str2
if len(sys.argv) != 4:
print 'Usage: %s ' % os.path.basename(sys.argv[0])
else:
str1 = sys.argv[2]
str2 = sys.argv[3]
Keijo(os.path.abspath(sys.argv[1]))

Äänestä
  • Täytyy koittaa ajaa...

    Äänestä

Kommentoi aloitusta


juopa kirjoitti:

Onko jokin ohjelma ( helppokäyttöinen ), joka etsii tietyn merkkijonon ( myös HTML-tekstistä ) ja korvaa sen uudella.

Ohjelman tulisi olla sellainen että se hakee merkkijonon hakemistosta ja hakemiston alihakemistosta jne riippumatta missä tiedostossa tekstijono esiintyy.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu