读取文件时出现语法错误

时间:2016-11-27 19:43:50

标签: python python-2.7 syntax-error

代码用于将文件作为输入,将所有字母更改为小写并删除任何非字母字符。然后它应该打印出文件中每个单词的重复出现。

#!/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

“我是一名少年黑客”是文本文件的第一行..

1 个答案:

答案 0 :(得分:1)

你的脚本可能还可以,但你的运行方式不正确。

您正在启用py_compile模块

  

py_compile模块提供了一个从源文件

生成字节码文件的功能

模块从命令行获取所有参数,包括文本文件,并在其中发现语法错误。

就像这样运行:

python q1_word_count.py drake.txt

(您可以先编译模块:python -m py_compile q1_word_count.py,在这种情况下,您可以运行.pyc生成的字节码文件,并且每次更改.py文件都需要重新编译启动时微小的速度增益,执行时没有,这是字节码编译,而不是动态编译。如果你想要动态编译,请使用pypy