class pyarrow.fs.FileInfo(path, FileType type=FileType.Unknown, mtime=None, *, mtime_ns=None, size=None)#

Bases: _Weakrefable

FileSystem entry info.

Parameters:
pathstr

The full path to the filesystem entry.

typeFileType

The type of the filesystem entry.

mtimedatetime or float, default None

If given, the modification time of the filesystem entry. If a float is given, it is the number of seconds since the Unix epoch.

mtime_nsint, default None

If given, the modification time of the filesystem entry, in nanoseconds since the Unix epoch. mtime and mtime_ns are mutually exclusive.

sizeint, default None

If given, the filesystem entry size in bytes. This should only be given if type is FileType.File.

Examples

Generate a file:

>>> from pyarrow import fs
>>> local = fs.LocalFileSystem()
>>> path_fs = local_path + '/pyarrow-fs-example.dat'
>>> with local.open_output_stream(path_fs) as stream:
...     stream.write(b'data')
4

Get FileInfo object using get_file_info():

>>> file_info = local.get_file_info(path_fs)
>>> file_info
<FileInfo for '.../pyarrow-fs-example.dat': type=FileType.File, size=4>

Inspect FileInfo attributes:

>>> file_info.type
<FileType.File: 2>
>>> file_info.is_file
True
>>> file_info.path
'/.../pyarrow-fs-example.dat'
>>> file_info.base_name
'pyarrow-fs-example.dat'
>>> file_info.extension
'dat'
>>> file_info.mtime
datetime.datetime(2022, 6, 29, 7, 56, 10, 873922, tzinfo=datetime.timezone.utc)
>>> file_info.mtime_ns
1656489370873922073
__init__(*args, **kwargs)#

Methods

Attributes

base_name#

The file base name.

Component after the last directory separator.

Examples

>>> file_info = local.get_file_info(path)
>>> file_info.base_name
'pyarrow-fs-example.dat'
extension#

The file extension.

Examples

>>> file_info = local.get_file_info(path)
>>> file_info.extension
'dat'
is_file#
mtime#

The time of last modification, if available.

Returns:
mtimedatetime.datetime or None

Examples

>>> file_info = local.get_file_info(path)
>>> file_info.mtime
datetime.datetime(2022, 6, 29, 7, 56, 10, 873922, tzinfo=datetime.timezone.utc)
mtime_ns#

The time of last modification, if available, expressed in nanoseconds since the Unix epoch.

Returns:
mtime_nsint or None

Examples

>>> file_info = local.get_file_info(path)
>>> file_info.mtime_ns
1656489370873922073
path#

The full file path in the filesystem.

Examples

>>> file_info = local.get_file_info(path)
>>> file_info.path
'/.../pyarrow-fs-example.dat'
size#

The size in bytes, if available.

Only regular files are guaranteed to have a size.

Returns:
sizeint or None
type#

Type of the file.

The returned enum values can be the following:

  • FileType.NotFound: target does not exist

  • FileType.Unknown: target exists but its type is unknown (could be a special file such as a Unix socket or character device, or Windows NUL / CON / …)

  • FileType.File: target is a regular file

  • FileType.Directory: target is a regular directory

Returns:
typeFileType