Мне было интересно, есть ли у Python проблемы схожие с C относительно порядка выполнения определенных элементов кода.
Например, я знаю, что в C иногда говорят, что не гарантируется, что какая-то переменная инициализированаперед другим.Или только из-за того, что одна строка кода находится выше другой, не гарантируется, что она будет реализована раньше, чем все нижеуказанные.
То же самое для Python?Например, если я открываю файл данных, читаю данные, закрываю файл, а затем делаю другие вещи, которые я точно знаю, что файл закрыт до того, как будут выполнены строки после закрытия файла ??
Причина, по которой я спрашиваю, заключается в том, что я пытаюсь прочитать большой файл данных (1,6 ГБ) и использовать этот модуль Python, специфичный для работы, которую я выполняю с данными.Когда я запускаю этот модуль, я получаю это сообщение об ошибке:
File "/glast01/software/ScienceTools/ScienceTools-v9r15p2-SL4/sane/v3r18p1/python/GtApp.py", line 57, in run
input, output = self.runWithOutput(print_command)
File "/glast01/software/ScienceTools/ScienceTools-v9r15p2-SL4/sane/v3r18p1/python/GtApp.py", line 77, in runWithOutput
return os.popen4(self.command(print_command))
File "/Home/eud/jmcohen/.local/lib/python2.5/os.py", line 690, in popen4
stdout, stdin = popen2.popen4(cmd, bufsize)
File "/Home/eud/jmcohen/.local/lib/python2.5/popen2.py", line 199, in popen4
inst = Popen4(cmd, bufsize)
File "/Home/eud/jmcohen/.local/lib/python2.5/popen2.py", line 125, in __init__
self.pid = os.fork()
OSError: [Errno 12] Cannot allocate memory
>>>
Exception exceptions.AttributeError: AttributeError("Popen4 instance has no attribute 'pid'",) in <bound method Popen4.__del__ of <popen2.Popen4 instance at 0x9ee6fac>> ignored
Я предполагаю, что это связано с размером данных, которые я читаю (у него 17608310 строк и 22 столбца).Я подумал, что, может быть, если я закрою файл, который открыл сразу после прочтения данных, это поможет, но это не помогло.Это заставило меня задуматься о порядке выполнения строк кода, отсюда и мой вопрос.
Спасибо