2017-08-31 1 views
-5

meine Frage ist, dass ich versuche, eine Funktion zu schreiben, die die Anzahl der Zeichen in einigen angegebenen. Txt-Datei zählt. Ich habe den folgenden Code erstellt.Python - Zählen der Anzahl der Zeichen in Dateien

def file_size(filename): 
    with open('data.txt', 'r') as file: 
    filename = file.read() 
    len_chars = sum(len(word) for word in filename) 
    return len_chars 

Diese Funktion funktioniert, wenn ich es mit print(file_size('data.txt')) nennen und gibt mir die richtige Ausgabe. Ich frage mich jedoch, wie ich meinen Code ändern kann, so dass er die Anzahl der Zeichen in jeder. TXT-Datei im selben Verzeichnis wie das Programm selbst zählen kann, anstatt nur data.txt, wenn ich es mit aufrufen. Wenn zum Beispiel 10 .txt-Dateien in demselben Verzeichnis wie mein Programm gespeichert sind, würde ich gerne dieses Programm für diese Dateien ausführen können, ohne den Namen der Datei in meine Funktion eingeben zu müssen, sondern stattdessen den Name der Datei beim Aufruf der Funktion. Vielen Dank im Voraus für jede Hilfe.

+0

Siehe [sys.argv] (https://docs.python.org/3/library/sys.html#sys.argv). –

+3

einfach Schleife über 'os.listdir (my_folder)' und verwenden Sie einen entsprechenden Titel bitte, Ihre Frage ist mehr über, wie man Schleife über einen Ordner als tatsächlich zählen Zeichen (die Sie bereits gelöst haben) – Julien

+0

Siehe auch [os.path.getsize ] (https://docs.python.org/3/library/os.path.html?highlight=os%20path#os.path.getsize) was das tut, was Sie versuchen zu schreiben. –

Antwort

0

Sie entweder den Dateinamen als Parameter übergeben werden können, wo Sie die Funktion wie

def file_size(filePath): 
    with open(filePath, 'r') as file: 
     filename = file.read() 
     len_chars = sum(len(word) for word in filename) 
     return len_chars 

Aufruf die obige Funktion als

character_count = file_size(fileName) 

oder Sie können den Dateinamen übergeben, wenn die Ausführung des ganzen Charakter nennen Zählen Python-Datei wie

python fileName.py -file fileName.txt 

Die Die obige Übergabe des Arguments erfolgt mit sys.argv im sys-Modul von Python. Sie können sich beziehen http://www.python-course.eu/passing_arguments.php

Verwandte Themen