pyarrow.fs.FileInfo#

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.size
4
>>> 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

__init__(*args, **kwargs)

Attributes

base_name

The file base name.

extension

The file extension.

is_file

mtime

The time of last modification, if available.

mtime_ns

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

path

The full file path in the filesystem.

size

The size in bytes, if available.

type

Type of the file.

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