我在解决python编码方面遇到了麻烦

时间:2014-05-06 14:41:52

标签: python

我有编码问题请帮我解决问题

问题:

我的python代码应该导入输入文件,以找出它应该出现在文件中的输入文件中每个单词的频率,并按字母顺序将单词写入名为word_frequency.txt的输出文件

代码:

import string

def itm((a1,b1), (a2,b2)):
    if b1 > b2:
        return - 1
    elif b1 == b2:
        return cmp(a1, a2)
    else:
        return 1

def main_cd():
    input.txt = raw_input("File to analyze: ")
    text = open(input.txt, 'r').read()
    text = string.lower(text)
    for i in string.punctuation:
        text = string.replace(text, i, ' ')
    words = string.split(text)

    counts = {}
    for w in words:
        counts[w] = counts.get(w,0) + 1

    n = input("Output analysis of how many words? ")
    items = counts.items()
    items.sort(itm)
    for i in range(n):
        print "%-10s%5d" % items[i]


if __name__ == '__main__': main_cd()

问题:

要分析的文件:input.txt Traceback(最近一次调用最后一次):   第38行,在     如果名称 =='主要':main_cd() 第19行,在main_cd中     input.txt = raw_input(“要分析的文件:”) AttributeError:'builtin_function_or_method'对象没有属性'txt'

使用退出代码1完成处理

2 个答案:

答案 0 :(得分:4)

您无法使用.input.txt)为变量命名。这样做:

file_name = raw_input("File to analyze: ")
text = open(file_name, 'r').read()

注意:最好在阅读完文件后关闭该文件。这是一个更好的习惯:

file_name = raw_input("File to analyze: ")
with open(file_name, 'r') as f:
    text = f.read()

此处,with语句上下文管理器将在您完成with块代码后立即自动关闭文件。

答案 1 :(得分:1)

从输入变量中删除.text:

input_txt = raw_input("File to analyze: ")
text = open(input_txt, 'r').read()