mirror of
https://github.com/triqs/dft_tools
synced 2024-11-07 06:33:48 +01:00
Implemented 'read_header_and_data()' and 'read_data()'
'read_data()' is a generator interpreting a file as a sequence of floats. Lines starting with '#' are ignored. 'read_header_and_data()' reads the header string until a line "# END ...", initializes a generator 'read_data()', and returns them.
This commit is contained in:
parent
8179b74178
commit
7b2e2a3b6e
@ -25,6 +25,7 @@ import numpy
|
|||||||
from pytriqs.archive import *
|
from pytriqs.archive import *
|
||||||
from converter_tools import *
|
from converter_tools import *
|
||||||
import os.path
|
import os.path
|
||||||
|
import simplejson as json
|
||||||
|
|
||||||
class VaspConverter(ConverterTools):
|
class VaspConverter(ConverterTools):
|
||||||
"""
|
"""
|
||||||
@ -64,11 +65,30 @@ class VaspConverter(ConverterTools):
|
|||||||
"""
|
"""
|
||||||
Generator for reading plain data.
|
Generator for reading plain data.
|
||||||
"""
|
"""
|
||||||
|
for line in fh:
|
||||||
|
line_ = line.strip()
|
||||||
|
if line_[0] == '#' or line_ == '':
|
||||||
|
continue
|
||||||
|
|
||||||
|
for val in map(float, line.split()):
|
||||||
|
yield val
|
||||||
|
|
||||||
def read_header_and_data(self, filename):
|
def read_header_and_data(self, filename):
|
||||||
"""
|
"""
|
||||||
Opens a file and returns a JSON-header and the generator for the plain data.
|
Opens a file and returns a JSON-header and the generator for the plain data.
|
||||||
"""
|
"""
|
||||||
|
fh = open(filename, 'rt')
|
||||||
|
header = ""
|
||||||
|
for line in fh:
|
||||||
|
if not "# END" in line:
|
||||||
|
header += line
|
||||||
|
else:
|
||||||
|
break
|
||||||
|
|
||||||
|
f_gen = self.read_data(fh)
|
||||||
|
|
||||||
|
return header, f_gen
|
||||||
|
|
||||||
def convert_dft_input(self):
|
def convert_dft_input(self):
|
||||||
"""
|
"""
|
||||||
Reads the input files, and stores the data in the HDFfile
|
Reads the input files, and stores the data in the HDFfile
|
||||||
|
Loading…
Reference in New Issue
Block a user