ファイルを読み取り、ユーザーに単語を入力するように求め、その単語が何回使用されたかを伝える簡単なプログラムを作成しました。毎回正確なディレクトリを入力する必要がないように改善したいと思います。Tkinter をインポートし、コード fileName= filedialog.askfilename() を使用して、ボックスがポップアップし、ファイルを選択できるようにしました。次のエラーコードが表示されますが、使用しようとするたびに...
Traceback (most recent call last):
File "/Users/AshleyStallings/Documents/School Work/Computer Programming/Side Projects/How many? (Python).py", line 24, in <module>
for line in fileScan.read().split(): #reads a line of the file and stores
File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0x8e in position 12: ordinal not in range(128)
このエラー コードが表示されないのは、.txt ファイルを開こうとしたときだけです。しかし、.docx ファイルも開きたいと思っています。事前にご協力いただきありがとうございます:)
# Name: Ashley Stallings
# Program decription: Asks user to input a word to search for in a specified
# file and then tells how many times it's used.
from tkinter import filedialog
print ("Hello! Welcome to the 'How Many' program.")
fileName= filedialog.askopenfilename() #Gets file name
cont = "Yes"
while cont == "Yes":
word=input("Please enter the word you would like to scan for. ") #Asks for word
capitalized= word.capitalize()
lowercase= word.lower()
accumulator = 0
print ("\n")
print ("\n") #making it pretty
print ("Searching...")
fileScan= open(fileName, 'r') #Opens file
for line in fileScan.read().split(): #reads a line of the file and stores
line=line.rstrip("\n")
if line == capitalized or line == lowercase:
accumulator += 1
fileScan.close
print ("The word", word, "is in the file", accumulator, "times.")
cont = input ('Type "Yes" to check for another word or \
"No" to quit. ') #deciding next step
cont = cont.capitalize()
if cont != "No" and cont != "Yes":
print ("Invalid input!")
print ("\n")
print ("Thanks for using How Many!") #ending
PSそれが問題かどうかはわかりませんが、OSxを実行しています