write

FileSet.write(data, file_info, in_background=False, **write_args)[source]

Write content to a file by using the FileSet’s file handler.

If the filename extension is a compression format (such as zip, etc.) and FileSet.compress is set to true, the file will be compressed afterwards.

Notes

You need to specify a file handler for this fileset before you can use this method.

Parameters
  • data – An object that can be stored by the used file handler class.

  • file_info – A string, path-alike object or a FileInfo object.

  • in_background – If true (default), this runs the writing process in a background thread so it does not pause the main process.

  • **write_args – Additional key word arguments for the write method of the used file handler object.

Returns

None

Examples:

import matplotlib.pyplot as plt
from typhon.files import FileSet, Plotter

# Define a fileset consisting of multiple files:
plots = FileSet(
    path="/dir/{year}/{month}/{day}/{hour}{minute}{second}.png",
    handler=Plotter,
)

# Let's create a plot example
fig, ax = plt.subplots()
ax.plot([0, 1], [0, 1])
ax.set_title("Data from 2018-01-01")

## To save the plot as a file of the fileset, you have two options:
# Use this simple expression:
plots["2018-01-01"] = fig

# OR use write in combination with get_filename
filename = plots.get_filename("2018-01-01")
plots.write(fig, filename)

# Hint: If saving the plot takes a lot of time but you want to
# continue with the program in the meanwhile, you can use the
# *in_background* option. This saves the plot in a background
# thread.
plots.write(fig, filename, in_background=True)

# continue with other stuff immediately and do not wait until the
# plot is saved...
do_other_stuff(...)