Ich habe einen Ordner mit etwa 50.000 Textdateien, und ich muss sehen, ob einige von ihnen Zeilen haben, die nur mit dem CR-Zeichen enden/LF oder LF) - hex 0x0D.Verwenden von Python 2.7 - Regex, um alle CR-Zeichen am Ende der Zeilen zu finden
Der folgende Code gibt keine Ergebnisse zurück und benötigt eine LANGE Verarbeitungszeit.
import re
import os
rootDir = 'Z:\Archive\\20160701'
for root, dirs, files in os.walk(rootDir):
print('--\nroot = ' + rootDir)
for filename in rootDir:
file_path = os.path.join(rootDir, filename)
print('Searching file: %s' % filename)
with open(file_path, 'r') as f:
f_content = f.read()
check = re.search('[\x0D$]', f_content, re.MULTILINE)
if check:
print check
gotit = open('U:\Temp3\\foundit.txt', 'a')
gotit.write(file_path + '\n')
gotit.close()
Vielen Dank im Voraus für jede Einsicht, die jemand zur Verfügung stellen kann. Ich weiß, dass mindestens eine Datei in dem Ordner mit Zeilenumbrüchen nur das Zeichen 0x0D enthält.
Verwenden Sie einfach 'r '\ r (?! \ N)'' aber in vor die gesamte Datei lesen. –
Sie öffnen Dateien im Textmodus, der alle Zeilenendungen in '\ n' konvertiert; wie in der [Dokumentation] (https://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-files) beim Lesen und Schreiben von Dateien beschrieben. –