我只是刚刚开始在python中使用类,因此无法弄清楚如何解决这个大概简单的错误。我有一个基本上可以整理多个csv文件,对数据进行排序和清理并输出完成列表的类,如下所示:
class CollateCSV():
def __init__(self, input_dir="", file_list="", output=False):
# initialises some global variables
def read_file_list(self):
#reads a csv file of already "dealt with" files
return x #list of filenames
def list_files_to_read(self, show=False, perm=True):
#gives list of csv files yet to be cleaned - the ones the program will actually import and read
return files_to_read
def sort_list(self, unsorted_list):
#sorts a list of OrderedDict by multiple keys
return sorted_list
def import_sort(self):
#reads each CSV file, cleans it, passes it to sort_list function and returns cleaned & sorted list of OrderedDict
return sort_list(x)
def return_final_list(self):
#does some things relating to logging if self.output == True. But used mainly as single easy place to return the final sorted & cleaned list of OrderedDict
return import_sort()
我设置项目的方式,此代码与主代码位于单独的文件中,因此我将其作为模块导入。因此,我知道代码本身就像在运行下面的代码时一样工作。我已经修复了一些错误,这些错误在上面的代码中始终指示丢失的变量或语法错误等。
from convert import CollateCSV
x = CollateCSV("./csv_files", "./file_list.csv", output=False)
print(x.list_files_to_reas())
我遇到的问题是,当我运行上面的代码时,我知道自己会犯一个错误:
for file in list_files_to_read(show=False, perm=True):
NameError: name 'list_files_to_read' is not defined
我尝试过在CollateCSV类中移动函数,并尝试在与第一个文件相同的文件中执行第二个代码段,但仍然会遇到相同的错误。有人可以就我在python中做错什么给出一些建议吗?谢谢。
答案 0 :(得分:0)
在for循环中,您需要编写
for file in x.list_files_to_read(show=False, perm=True):
# ...
因为x
是您的CollatesCSV
实例
答案 1 :(得分:-2)
您可能在包含类文件的目录中缺少__init__.py
文件。