私はファイルを読み込もうとするプログラムを持っています。ファイルを読むことができれば、そのファイルからリストを生成し、そのリストからランダムな選択を返します。ユーザー。ファイルが見つからない場合、または別のエラーが発生した場合、メッセージはユーザに警告し、プログラムはデフォルトで自分のプログラムのソースコード内のデフォルトリストを使用します。FileNotFoundError、os.getcwd()はディレクトリではないファイル名を返します
ファイル名の最初の部分をある関数からreadFile()関数に渡します。この関数は渡されたファイル名に '.txt'を追加し、関数名に応じて3つのファイルのいずれかを読み込もうとします与えられた。既存のファイルにもかかわらず
、と私は確信して.txt.txtが呼び出されなかっ作るために隠された拡張子を表示しましたが、プログラムはまだ私はos.getcwdの言及を聞いた、オンライン検索FileNotFoundError
を返します()ので、私はreadFile()関数の先頭にprint(os.getcwd())を実行し、返されたのはall.txtでした。 "all"は、このテストを実行するためにreadFile()に渡した値です。
この関数内のプログラムの作業ディレクトリがプログラムディレクトリではなくfileNameに設定されているので、この場合all.txtは見つかりません。
どうすればこの問題を解決できますか?
以下は、拡張子を含まないファイル名をreadFile()関数に渡す関数です。複数のオプションがあります。ここでは読みやすさを向上させるための最初のオプションを追加しました。すべてのオプションは同じエラーを返し、同じように動作します。
これはreadFile()関数です。
def readFile(list) :
print(os.getcwd())
READ = 'r'
fileName = list + '.txt'
with open(fileName, READ) as f :
# Reads the entire file
dictionary = f.readlines()
# Seperates each word to create a list of words
Activitylist = [word.strip() for word in dictionary]
return(ActivityList)
@Omneya – sugarfree