code: def wr_dat_files(self, expanded=False, write_dir=''):
          
          # Get the set of dat files to be written, and
          # the channels to be written to each file.
          file_names, dat_channels = describe_list_indices(self.file_name)
  
          # Get the fmt and byte offset corresponding to each dat file
          DAT_FMTS = {}
          dat_offsets = {}
          for fn in file_names:
              DAT_FMTS[fn] = self.fmt[dat_channels[fn][0]]
  
              # byte_offset may not be present
              if self.byte_offset is None:
                  dat_offsets[fn] = 0
              else:
                  dat_offsets[fn] = self.byte_offset[dat_channels[fn][0]]
  
          # Write the dat files
          if expanded:
              for fn in file_names:
                  wr_dat_file(fn, DAT_FMTS[fn], None , dat_offsets[fn], True,
                              [self.e_d_signal[ch] for ch in dat_channels[fn]],
                              self.samps_per_frame, write_dir=write_dir)
          else:
              # Create a copy to prevent overwrite
              dsig = self.d_signal.copy()
              for fn in file_names:
                  wr_dat_file(fn, DAT_FMTS[fn],
                              dsig[:, dat_channels[fn][0]:dat_channels[fn][-1]+1],
                              dat_offsets[fn], write_dir=write_dir)
docs: Write each of the specified dat files