2017-07-21 2 views
0

Ich habe eine große Menge von HTML-und CSS-Dateien (vielleicht für Typen zu kommen).Geben Sie mehrere Dateitypen an, GLOB, Python 3.6

ich geschrieben habe ein Skript finden und ersetzen glob verwendet, die auf 1 Dateityp funktioniert gut ..

im Probleme haben mehrere Dateitypen iterieren.

************ UPDATE ***********

Dieser Code funktioniert perfekt! Danke Jungs

files_extensions = ('.html', '.css') 
find_str = 'http' 
replace_str = 'https' 

def find_and_replace(find, replace): 
    for files in files_extensions: 
     globby = (glob.glob('**/*' + files, recursive=True)) 
     print(globby) 

     for file in globby: 
      f = open(file, 'r', encoding='utf-8') 
      file_data = f.read() 
      f.close() 

      new_data = file_data.replace(find, replace) 

      f = open(file, 'w', encoding='utf-8') 
      f.write(new_data) 
      f.close() 


find_and_replace(find_str, replace_str) 
+1

Versuch '' print'ing file_ext' - es enthält nicht, was Sie denken, es tut. – asongtoruin

+0

es tut lol, es druckt .html ... ich möchte es irgendwie senden .css und .html und auch mehr Typen wie .php, .js usw. zur Funktion ... Entschuldigung für nicht klärende .. ich nur die und dort zu markieren, was ich zu tun habe :) – johnashu

Antwort

1

Nun, ich werde Ihnen ein Beispiel geben, wie mehr als eine Art zu packen, ich glaube, Sie in der Lage sein wird, dieses Beispiel in Ihrem Code zu verwenden, aber wenn Sie einige Probleme haben, fragen Sie nach es!

files_extension = ('*.html', '*.css') 
all_files_with_extension = list() 
for files in files_extension: 
    all_files_with_extension.extend(glob.glob(files)) 

print all_files_with_extension 
+0

Ich habe ein sehr ähnliches Skript an der Spitze, aber ich muss vermasselt haben, wie meins schafft 2 Listen, eine mit nur HTML und eine mit HTML und CSS .. Ihre Displays nur eins .. ive hat meinen einen gegen deinen ausgetauscht, also danke .. ich habe immer noch Probleme beim Iterieren, aber lol – johnashu