Python For Everyone第1.8节终端运行words.py提示clowntext.txt不存在问题求助
报错原因
你运行程序时终端的当前工作目录是用户根目录(~,对应路径/Users/wayneshaw/),你执行的python Desktop/words.py仅指定了Python脚本的路径,不会改变程序运行时的工作目录。代码里用相对路径clowntext.txt打开文件时,会从终端当前的工作目录(根目录)下找文件,而这个文件实际存放在桌面目录,所以会触发找不到文件的报错。
解决方法
- 方法1:切换终端工作目录到桌面后再运行程序
依次执行以下终端命令:
待程序提示输入文件名时输入cd ~/Desktop python words.pyclowntext.txt即可正常运行。 - 方法2:输入文件名时填写完整绝对路径
不需要修改终端工作目录,运行python Desktop/words.py后,待提示输入文件名时直接输入完整路径即可:/Users/wayneshaw/Desktop/clowntext.txt - 方法3:修改代码适配任意启动路径
调整代码逻辑,让程序默认从自身所在目录查找文件,后续不管在哪个目录启动程序都能正常读取同目录下的文本文件:import os # 取当前脚本文件所在的目录绝对路径 script_dir = os.path.dirname(os.path.abspath(__file__)) name = input('Enter file:') # 拼接得到目标文件的完整路径 file_path = os.path.join(script_dir, name) handle = open(file_path, 'r') counts = dict() for line in handle: words = line.split() for word in words: counts[word] = counts.get(word, 0) + 1 bigcount = None bigword = None for word, count in list(counts.items()): if bigcount is None or count > bigcount: bigword = word bigcount = count print(bigword, bigcount)
内容的提问来源于stack exchange,提问作者Wayne
相关产品推荐
相关产品推荐

