2017-08-31 30 views
-5

私の質問は、指定された.txtファイルの文字数を数える関数を書くことです。私は次のコードを思いついた。Python - ファイル内の文字数を数える

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 

この機能は、私がprint(file_size('data.txt'))でそれを呼び出したときに動作し、私に正しい出力を提供します。しかし、私は自分のコードを変更して、print(file_size('filename'))と呼ぶとdata.txtだけでなく、プログラム自体と同じディレクトリに保存された.txtファイルの文字数を数えることができるようにしたいと思います。たとえば、私のプログラムと同じディレクトリに10個の.txtファイルが保存されている場合、私はそのファイルの名前を自分の関数に入力せずにこれらのファイルに対してこのプログラムを実行できるようにしたいと思います。関数を呼び出すときのファイルの名前。助けを前にありがとう。

あなたは文字全体を実行する場合は、ファイル名を渡すことができ

character_count = file_size(fileName) 

として

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 

呼び出し上記の関数のような関数を呼び出したりしますファイル名をパラメータとして渡すことができますいずれか

+0

[sys.argv](https://docs.python.org/3/library/sys.html#sys.argv)を参照してください。 –

+3

'os.listdir(my_folder)'をループし、適切なタイトルを使用してください。あなたの質問は、実際に文字を数えた(すでに解決済みの)文字よりもループする方法です。 – Julien

+0

[os.path.getsize ](https://docs.python.org/3/library/os.path.html?highlight=os%20path#os.path.getsize)を使用して、作成しようとしていることを実行します。 –

答えて

0

Pythonファイルを数えるなど

python fileName.py -file fileName.txt 

上記の引数の受け渡しは、Pythonのsysモジュールでsys.argvを使って行います。 参照できますhttp://www.python-course.eu/passing_arguments.php

関連する問題