Это должно работать в Linux; поддержка в других операционных системах ненадежна (см. ниже).
import os, string
for file in os.listdir("HTML/"):
print file
myfile = open('HTML/' + file)
fileList = myfile.readlines()
for pos, line in enumerate(fileList):
line = filter(lambda x: x in string.printable, line) # see note 1
fileList[pos] = line
myfile.close()
myfile = open('HTML/' + file, "wz") # see note 2
myfile.write("\n".join(fileList))
Примечание 1. Простое назначение line
не меняет fileList
. Переменные действительно являются метками (ссылками) на объекты: назначение метки изменяет объект, к которому прикреплена метка. Эта строка создает список, которому затем присваивается
Примечание 2. Режим файла "wz" очищает файл при открытии (он должен быть эквивалентом флага O_TRUNC
при передаче в open()
). Он может быть недоступен на платформах, отличных от Linux.