un script en python pour remplacer du texte recursivement dans des fichiers.
1 import os
2 liste = os.listdir('c:/repertoire')
3 for fichiers in liste :
4 if os.path.isfile(fichiers):
5 fichier=open(fichiers, "r")
6 contenu=fichier.read()
7 contenu = contenu.replace('\n<\?','<?')
8 contenu = contenu.replace('\n\?>','?>')
9 else:
10 liste.append(os.listdir(fichiers))
Rempli la liste des fichiers d'un repertoire et de ses sous-repertoire récusivement.
1 void scan( const std::wstring& path, const std::wstring& filter, std::vector<std::wstring> &list )
2 {
3 WIN32_FIND_DATA FindFileData;
4 HANDLE hFind;
5
6 std::wstring tmp = path + filter;
7 hFind = ::FindFirstFile( tmp.c_str(), &FindFileData);
8
9 if ( hFind == INVALID_HANDLE_VALUE )
10 {
11 throw Exception();
12 return ;
13 }
14
15 do
16 {
17 std::wstring filename = FindFileData.cFileName;
18 if ( filename == TEXT(".") )
19 continue;
20 if ( filename == TEXT("..") )
21 continue;
22 if ( FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY )
23 scan( path + filename + TEXT("\\"), filter, list );
24 else
25 list.push_back( path + filename );
26
27 } while ( ::FindNextFile(hFind, &FindFileData) != 0 );
28 }
29
30 //Utilisation
31 std::map<std::wstring> list;
32 scan( TEXT("C:\\"), TEXT("*"), list ) ;
Ce script fonctionne comme la commande UNIX "du", mais pour les fichiers : il calcule la taille totale des fichiers donnés et l'affiche en o, Ko, Mo et Go.
1 import os
2 import sys
3
4 if len(sys.argv) == 1:
5 print "Usage : %s files"%(sys.argv[0])
6 sys.exit(0)
7
8 sizes_sum = 0.0
9 for file in sys.argv[1:]:
10 if not os.path.isfile(file):
11 print "%s is not a regular file"%(file)
12 sys.exit(1)
13 sizes_sum = sizes_sum + os.path.getsize(file)
14
15 print "%d o"%(int(sizes_sum))
16 print "%0.02f Ko"%(sizes_sum/1024)
17 print "%0.02f Mo"%(sizes_sum/1024/1024)
18 print "%0.02f Go"%(sizes_sum/1024/1024/1024)
Ouverture et Enregistrement XML en Python
1 import xml.dom
2 import xml.dom.ext.reader.Sax2
3 import xml.dom.ext
4
5 # Ouverture du fichier XML
6 f = open('fichier.xml'), 'r')
7 reader = xml.dom.ext.reader.Sax2.Reader()
8 dom = reader.fromStream(f)
9
10 # Manipulation du DOM
11 # ...
12
13 # Enregistrement
14 xml.dom.ext.Print(dom, open('fichier.xml', 'w'))
15 # Enregistrement indenté
16 xml.dom.ext.PrettyPrint(dom, open('fichier.xml', 'w'))
Pages : 1