Ich habe ein Programm, das eine Datei scannt, ich brauche es, um die am häufigsten wiederkehrende Länge einer Zeile zu finden die Linie, die nicht die gleiche Länge wie der Rest hat ... irgendwelche Tipps?Müssen die am meisten wiederkehrende Länge finden, um dann die Zeile zu finden, die nicht die gleiche Länge wie der Rest hat
Ich habe das Gefühl, ich muss meine erste if-Anweisung vollständig ändern. Hier
ist das, was ich bisher ...
import sys
import os
import schedule
import time
#Using schedule, a continuous loop running every 1 second will monitor the folder "filedrop"
#defining the "job" that will be done
def job():
#Find any file in the folder "filedrop" with a .txt then scan it
for file in os.listdir("/Users/justinstarkman/Desktop/Filedrop/"):
if file.endswith(".txt"):
#open the file and check to see if it empty
#if the file is empty it will be moved to the failure folder with a message why
#if the file has contents the scanning will continue
with open(file) as f:
flenme = os.path.basename(file) #gets the file name for later
cnt= os.stat(file).st_size #counts the elements in the file
try:
if cnt > 0:
fle = [line.strip() for line in f] #strips the \n
min_char = (min(fle, key = len)) #finds min amount of character
max_char = (max(fle, key = len)) #finds max amount of character
length_max = len(max_char) #converts to numbers to compare lengths
length_min = len(min_char)
#moving files based on is all records are the same length or not
if length_max == length_min:
os.rename("/Users/justinstarkman/Desktop/Filedrop/{0}".format(flenme) ,"/Users/justinstarkman/Desktop/Filedrop/Success/{0}".format(flenme))
else:
os.rename("/Users/justinstarkman/Desktop/Filedrop/{0}".format(flenme) ,"/Users/justinstarkman/Desktop/Filedrop/Failure/{0}".format(flenme))
os.chdir("/Users/justinstarkman/Desktop/Filedrop/Failure") #change directory to add to the failed_file document
FldFle= open("failed_files.txt","a")
FldFle.write('--"%s" was moved to the "Failure" folder.\n' % (flenme));
FldFle.close()
os.chdir("/Users/justinstarkman/Desktop/Filedrop")
else:
os.rename("/Users/justinstarkman/Desktop/Filedrop/{0}".format(flenme) ,"/Users/justinstarkman/Desktop/Filedrop/Failure/{0}".format(flenme))
os.chdir("/Users/justinstarkman/Desktop/Filedrop/Failure") #change directory to add to the failed_file document
FldFle= open("failed_files.txt","a")
FldFle.write('--"%s" was moved to the "Failure" folder because it was an empty file.\n' % (flenme));
FldFle.close()
os.chdir("/Users/justinstarkman/Desktop/Filedrop")
except :
print 'ERROR'
#the program will check the folder for a new file ever 1 second
schedule.every(1).seconds.do(job)
while True:
schedule.run_pending()
time.sleep(1)
Willkommen bei SO. Sie sollten ein minimales Beispiel, eine Eingabe und die gewünschte Ausgabe geben – Francesco
die Datei, die ich eingeben wird, ist eine TXT, der Prozess wird die Datei erschrecken, um zu sehen, ob alle Längen der Zeilen gleich sind, wenn sie die Datei verschoben werden zu einem Erfolgsordner ... wenn nicht, wird es in einen Fehlerordner verschoben und eine Zeichenkette wird zu einer TXT-Datei hinzugefügt, die besagt, welche Zeile nicht die gleiche Länge wie der Rest hat –