操作系统未导入python类方法

操作系统未导入python类方法,python,class,Python,Class,我在将操作系统导入到我想要使用的类方法时遇到一些问题 main.py: import os import datadir import dataops d1 = datadir.datadir(dirtoscan) uniques = d1.FindPrefixes(dirtoscan) Materials = d1.SortPhotodiodeData(uniques) dat1 = dataops.dataops(Materials) rawdata = dat1.BigDictToArra

我在将操作系统导入到我想要使用的类方法时遇到一些问题

main.py:

import os
import datadir
import dataops
d1 = datadir.datadir(dirtoscan)
uniques = d1.FindPrefixes(dirtoscan)
Materials = d1.SortPhotodiodeData(uniques)
dat1 = dataops.dataops(Materials)
rawdata = dat1.BigDictToArray(Materials)
dataops.py:

import os
class dataops:
    def __init__(self,name):
        self.name = name
    def BigDictToArray(self,Materials):
        self.tardir = os.getcwd()
当我尝试在Windows7上运行时,出现了一个错误我是新手,对不起

C:\Python27\dataops.pyc in BigDictToArray(self, Materials)
     43             rawdata.append({name[0]:matdata})
     44         return rawdata
---> 45 
     46     def BigDictToArray(self,Materials):
     47         self.tardir = os.getcwd()

 NameError: global name 'os' is not defined

为什么我不能将操作系统模块导入到dataops中?在datadir类中调用os没有问题。dataops和datadir都存储在C:\Python27中,如果这有什么区别的话。

错误列表中显示的BigDictToArray方法的代码与dataop.py模块中的代码不同。还有您还导入的模块datadir.py中有什么?同样奇怪的是,dataop.py模块中有类datadir的定义…代码和错误消息不一致。很抱歉,在手动复制代码时出现了错误。BigDictToArray在dataops中。Datadir是一个模块,它对目录进行排序,并根据它对应的样本存储数据。感谢您的评论和回复!你是对的,对此表示抱歉,并感谢你的耐心,刚刚完成复制,两者都应该阅读self.tardir。正常情况下,回溯不引用.pyc文件。尝试删除C:\Python27\dataops.pyc文件。它有可能(尽管不太可能)覆盖最新dataops.py模块的内容。您还可以尝试将导入操作系统添加为def Bigdict ToArraySelf之后的第一行,Materials:。这应该没有必要,但它可能会解决您遇到的非常奇怪的问题。