は私の問題を引き起こしているコードのサンプルです:のPython 3.5.2 FileNotFoundError:[errnoを2]いいえそのようなファイルまたはディレクトリ:ここにあるtest.txt "
import string
letters = string.ascii_lowercase
offset = ord('a')
def countFrequency(file_handle):
"""Traverse a file and compute the number of occurences of each letter
return results as a simple 26 element list of integers."""
results = [0] * len(letters)
for line in file_handle: #read line from file
for char in line: #read char by char from above line
char = char.lower() #cnverting char in lowercase
if char in letters: #checking if char exist i letters
results[ord(char) - offset] += 1
return results
#sorting the both lists frequency and letter list
def sort(ltr,frequency):
for x in xrange(len(frequency)):
for y in xrange(len(frequency)-1):
if frequency[y]<frequency[y+1]: # on true swap values
t=frequency[y+1]
frequency[y+1]=frequency[y]
frequency[y]=t
t=ltr[y+1]
ltr[y+1]=ltr[y]
ltr[y]=t
#print the sorted results
for i in xrange(len(ltr)):
if(frequency[i]==0):
break;
print "%s=%d" % (ltr[i], frequency[i])
if __name__ == "__main__":
filename = str(input('Enter file name(e.g. test.txt):'))
#file path
sourcedata = open(filename)
#fucntion return frequency of letters
frequency = countFrequency(sourcedata)
#creating list of letters (a-z)
ltrs= [0] * len(letters)
for i in xrange(len(frequency)):
ltrs[i]=chr(i + ord('a'))
#sorting the result in descending order
sort(ltrs,frequency)
私はPythonを書くことになっています入力ファイル名を入力するプロンプトが表示されます。プログラムは、名前付きファイルを開き、大文字小文字を無視して、その中の各文字の頻度を計算する必要があります。結果として得られるテーブルはソートされた順序で画面に出力されます。 「並べ替えられた注文」とは、最も頻繁に表示される文字を最初に表示し、その後に2番目に頻繁に表示するということです。 これは私がこれまでに得たものであるが、私はそれを実行していると私は受け取ったファイル名を入力しようとすると:
sourcedata = open(filename) #file path FileNotFoundError: [Errno 2] No such file or directory: 'filename'
このエラーをケーシング何ができますか?この問題を解決するにはどうすればよいですか?
FileNotFoundErrorは自明です。ファイルパスを確認してください。 – ferit
テストファイル以外のディレクトリでプログラムを実行している可能性があります。ファイルパス全体を指定してみてください。 –
Python 3を使用していますが、コードはPython 2です。どちらのバージョンでも入力の扱いが異なります。だからどのバージョンを実行するのですか? –