读取fi时出现语法错误

2024-07-05 15:05:21 发布

您现在位置:Python中文网/ 问答频道 /正文

该代码的目的是以一个文件作为输入,将所有字母改为小写,并去掉任何非字母字符。然后它应该打印出文件中每个单词的重复次数。在

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

这是我在命令行中得到的:

^{pr2}$

“我是青少年黑客”是文本文件的第一行。。在


Tags: 文件代码infordataiftfsys
1条回答
网友
1楼 · 发布于 2024-07-05 15:05:21

你的脚本可能没问题,但你运行它的方式不正确。在

您正在启用py_compile模块

The py_compile module provides a function to generate a byte-code file from a source file

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

就这样运行:

python q1_word_count.py drake.txt

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

相关问题 更多 >