def get_par(filename_or_pard):
# automatically search for the path
Path = GetPathOsmosisPth()
f = open(Path,'r')
TheLines = f.readlines()
Path = TheLines[0][0:-1] + '/osmosis/'
f.close()
# Get the name of the path to the data
ThePath = locate_dir('GeneralParameters',Path)
Thepdata = ThePath.split('GeneralParameters')[0] #(line 216 - This line gives error)
# check if we do not have provided an external data path
DataDir = CheckInputDataDirectory()
#DataDir = 'Data_CS'
if DataDir is None:
pdata = Thepdata
else:
pdata = os.path.join(Path,DataDir)
# search for the file
if isstring(filename_or_pard):
# myprintv("isstring: ", filename_or_pard)
# creating the dictionary
ThePath = locate(filename_or_pard,pdata)
f = ThePath + os.path.sep + filename_or_pard
pard = create_par_structure(f)
# creating the class par_struct
par = par_struct(pard)
# store the filename with the parameters in the par structure
par.TheFilename = filename_or_pard
else:
# myprint2v("not isstring: ", filename_or_pard, type(filename_or_pard))
# the dictionary is provided as input
pard = filename_or_pard
# creating the class par_struct
if isdict(pard):
par = par_struct(pard)
par._FromStringToTrueType()
else:
par = pard
# if parameters.txt, set the path_data
if hasattr(par,'path_data'):
par.path_data = pdata
par.root_path = Path
# myprintv("pdata: ", par.path_data)
if hasattr(par,'path_packages'):
par.path_packages = os.path.join(Path,par.path_packages)
# returning the result
return par
Когда я запускаю свою программу, я получаю сообщение об ошибке с использованием обоих методов split, используемых выше. Ошибка отображаемая«AttributeError: объект« NoneType »не имеет атрибута« split »«
линия 216, в get_par Thepdata = ThePath.split ('GeneralParameters', Path) [0] AttributeError: объект 'NoneType' не имеет атрибута 'разбить'
Я считаю, что я делая небольшую ошибку, но я не знаю, только начинаю программировать.
Благодарим Вас заранее
Где находится 'locate_dir'? – bernie
'locate_dir()' return 'None'. Добавьте эту функцию к вашему вопросу. –
Пожалуйста, добавьте код к вашему вопросу и внесите в него правильный формат! Вы случайно получаете сообщение «Warning in locate: каталог не найден!»? Обратите внимание, что вы должны вызывать ошибку, если вы ничего не хотите возвращать, но вызов кода ожидает чего-то. – MisterMiyagi