Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 属性错误:';模块';对象没有属性';文件';_Python_Python 2.7_Unit Testing_Testing - Fatal编程技术网

Python 属性错误:';模块';对象没有属性';文件';

Python 属性错误:';模块';对象没有属性';文件';,python,python-2.7,unit-testing,testing,Python,Python 2.7,Unit Testing,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

我在做一个项目,我们需要找出单词的数量,同时也要找出某个单词出现的次数

测试.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'
python testing.py file.txt he
回溯(最近一次呼叫最后一次):
文件“testing.py”,第27行,在
unittest.main()
文件“/usr/lib/python2.7/unittest/main.py”,第94行,在__
self.parseArgs(argv)
文件“/usr/lib/python2.7/unittest/main.py”,第149行,在parseArgs中
self.createTests()
文件“/usr/lib/python2.7/unittest/main.py”,第158行,在createTests中
自我保护模块)
loadTestsFromNames中的文件“/usr/lib/python2.7/unittest/loader.py”,第130行
suites=[self.loadTestsFromName(name,module)表示名称中的名称]
loadTestsFromName中的文件“/usr/lib/python2.7/unittest/loader.py”,第100行
父对象,obj=obj,getattr(obj,零件)
AttributeError:“模块”对象没有属性“文件”
在这里,我将测试文件作为一个普通文本文件执行参数,另一个参数是搜索关键字,因此需要通过unittest测试它是否工作


执行函数时出现错误。

unittest试图读取您使用的命令行参数,导致冲突。 您可以通过读取参数,然后在调用unittest.main()之前删除它们来解决此问题:


unittest试图读取您使用的命令行参数时发生冲突。 您可以通过读取参数,然后在调用unittest.main()之前删除它们来解决此问题:

可能的重复可能的重复
if __name__ == '__main__':
    cmd_parameters = sys.argv[1]
    del sys.argv[1:]
    unittest.main()