代码用于将文件作为输入,将所有字母更改为小写并删除任何非字母字符。然后它应该打印出文件中每个单词的重复出现。
#!/usr/bin/python
import sys
def main(argv):
try:
tf = open(sys.argv[1],"r")
except IOError:
print("The file ",tf," was not found")
sys.exit()
data = tf.read()
data.lower()
data.replace("-"," ")
validLetters = " abcdefghijklmnopqrstuvwxyz"
cleanData = ''.join([i for i in data if i in validLetters])
frequency = {}
words = []
words = cleanData.split()
for x in words:
if frequency.has_key(x):
frequency[x] = frequency[x] + 1
else:
frequency[x]
print sorted(frequency.values())
tf.close()
这是我在命令行中得到的:
$ python -m py_compile q1_word_count.py drake.txt
File "drake.txt", line 1
I Was A Teenage Hacker
^
SyntaxError: invalid syntax
“我是一名少年黑客”是文本文件的第一行..
答案 0 :(得分:1)
你的脚本可能还可以,但你的运行方式不正确。
您正在启用py_compile
模块
py_compile模块提供了一个从源文件
生成字节码文件的功能
模块从命令行获取所有参数,包括文本文件,并在其中发现语法错误。
就像这样运行:
python q1_word_count.py drake.txt
(您可以先编译模块:python -m py_compile q1_word_count.py
,在这种情况下,您可以运行.pyc
生成的字节码文件,并且每次更改.py
文件都需要重新编译启动时微小的速度增益,执行时没有,这是字节码编译,而不是动态编译。如果你想要动态编译,请使用pypy
)