dopes.data_analysis.file_handling API documentation

# Module `dopes.data_analysis.file_handling`

## Functions

`def read_file(file_path,
comments='#',
delimiter=',',
skip_header=0,
skip_footer=0,
max_rows=None,
usecols=None,
deletechars=" !#$%&'()*+, /:;<=>?@[\\]^{|}~")`
  Expand source code

      def read_file(file_path,comments=comments,delimiter=delimiter, skip_header=skip_header,skip_footer=skip_footer,
                          max_rows=max_rows,usecols=usecols, deletechars=deletechars):
          """ Function to read data from a file

              args:
                 \n\t- file_path (string) : file, filename, list, or generator to read.
                 \n\t- comments (char) : the character used to indicate the start of a comment.
                 \n\t- delimiter (char) : the string used to separate values.
                 \n\t- skip_header (integer or sequence) : the number of lines to skip at the beginning of the file.
                 \n\t- skip_footer (integer or sequence) : the number of lines to skip at the end of the file.
                 \n\t- max_rows (integer) : the maximum number of rows to read. Must not be used with skip_footer at the same time.
                 \n\t- usecols (sequence) : which columns to read, with 0 being the first. For example, usecols = (1, 4, 5) will extract the 2nd, 5th and 6th columns.
                 \n\t- deletechars (string) : a string combining invalid characters that must be deleted from the names.

              return:
                 \n\t- data (numpy array): numpy array of the data read from the file
          """
          data=np.genfromtxt(file_path,comments=comments,delimiter=delimiter,
                              skip_header=skip_header,skip_footer=skip_footer,
                              max_rows=max_rows,usecols=usecols, deletechars=deletechars)

          return data

  Function to read data from a file

  args:

  - file_path (string) : file, filename, list, or generator to read.

  - comments (char) : the character used to indicate the start of a comment.

  - delimiter (char) : the string used to separate values.

  - skip_header (integer or sequence) : the number of lines to skip at the beginning of the file.

  - skip_footer (integer or sequence) : the number of lines to skip at the end of the file.

  - max_rows (integer) : the maximum number of rows to read. Must not be used with skip_footer at the same time.

  - usecols (sequence) : which columns to read, with 0 being the first. For example, usecols = (1, 4, 5) will extract the 2nd, 5th and 6th columns.

  - deletechars (string) : a string combining invalid characters that must be deleted from the names.

  return:

  - data (numpy array): numpy array of the data read from the file
`def write_in_file(file_path, data, delimiter=',', overwrite=False, header=None, date=True, comment='#')`
  Expand source code

      def write_in_file(file_path,data,delimiter=",",overwrite=False,header=None,date=True, comment="#"):
          """ Function to write data in a file

              args:
                 \n\t- file_path (string) : path for the data file, including the filename with its extension
                 \n\t- data (scalar, list or array) : the data to be written in the file
                 \n\t- delimiter (char) : the delimiter to separate the column of the data
                 \n\t- overwrite (boolean) : if True overwrite the existing file if any, if False, append the data to the existing file if any
                 \n\t- header (string) : header to be written before the data
                 \n\t- date (boolean) : date to be written at the beginning of the file
                 \n\t- comment (char) : char to be written before the header and date to indicate non-data lines

          """
          if file_path.split(".")[-1]=="csv":
              delimiter=","

          # Create file and header
          if overwrite:
              f = open(file_path, "w")
          else:
              f = open(file_path, "a")

          if date:
              f.write("%s %s\n"%(comment,datetime.datetime.now().strftime("%c")))

          if isinstance(header, str):
              for line in header.split("\n"):
                  f.write(comment+" "+line+"\n")

          shape=np.shape(data)
          if len(shape)==0:
              f.write("%.6E\n"%(data))
          elif len(shape)==1:
              for i in range(shape[0]):
                  if i==0:
                      f.write("%.6E"%(data[i]))
                  else:
                      f.write("%s%.6E"%(delimiter,data[i]))

              f.write("\n")

          elif len(shape)==2:
              for i in range(shape[0]):
                  for j in range(shape[1]):
                      if j==0:
                          f.write("%.6E"%(data[i,j]))
                      else:
                          f.write("%s%.6E"%(delimiter,data[i,j]))
                  f.write("\n")
          f.close()

  Function to write data in a file

  args:

  - file_path (string) : path for the data file, including the filename with its extension

  - data (scalar, list or array) : the data to be written in the file

  - delimiter (char) : the delimiter to separate the column of the data

  - overwrite (boolean) : if True overwrite the existing file if any, if False, append the data to the existing file if any

  - header (string) : header to be written before the data

  - date (boolean) : date to be written at the beginning of the file

  - comment (char) : char to be written before the header and date to indicate non-data lines