簡體   English   中英

AttributeError:“模塊”對象沒有屬性“文件”

[英]AttributeError: 'module' object has no attribute 'file'

Iam在一個項目中工作,我們需要找到單詞的數量,也沒有發現特定單詞的出現。

Testing.py

import unittest
import sys
import string
import funs
from funs import *


empty_list =[]
count = 0
file_name = sys.argv[1]
search = sys.argv[2]
with open(file_name,'r') as f:
     for line in f:
         for word in line.split():
             #Effective Way
            word = word.translate(None, string.punctuation)
            word = word.lower();
            empty_list.append(word)
            count += 1


class TestMyFunction(object):
    def test_search(self):
        self.assertTrue(search_word_fun(empty_list,'kiran'),0)

if __name__ == '__main__':
    unittest.main(exit=False)

funs.py

def longest_word_fun(empty_list,longest_word):
    for each_word in empty_list:
        if (len(each_word) == len(longest_word)):
            print each_word
def search_word_fun(empty_list,search):
    print "No of times %s occurs is %d"%(search,empty_list.count(search))

def count_word_fun(count):  
    print "No of words in file is %d"%(count)

錯誤日志:

python testing.py file.txt he
Traceback (most recent call last):
  File "testing.py", line 27, in <module>
    unittest.main()
  File "/usr/lib/python2.7/unittest/main.py", line 94, in __init__
    self.parseArgs(argv)
  File "/usr/lib/python2.7/unittest/main.py", line 149, in parseArgs
    self.createTests()
  File "/usr/lib/python2.7/unittest/main.py", line 158, in createTests
    self.module)
  File "/usr/lib/python2.7/unittest/loader.py", line 130, in loadTestsFromNames
    suites = [self.loadTestsFromName(name, module) for name in names]
  File "/usr/lib/python2.7/unittest/loader.py", line 100, in loadTestsFromName
    parent, obj = obj, getattr(obj, part)
AttributeError: 'module' object has no attribute 'file'

這里我以測試文件為例,在將參數作為普通文本文件作為參數執行時,另一個參數是search關鍵字,因此它需要通過unittest來測試其是否正常工作。

執行功能時出現錯誤。

單元測試試圖讀取您使用的命令行參數會導致沖突。 您可以通過讀取參數並在調用unittest.main()之前將其刪除來解決它:

if __name__ == '__main__':
    cmd_parameters = sys.argv[1]
    del sys.argv[1:]
    unittest.main()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM