欢迎访问宙启技术站
智能推送

使用Python中的gi.repository.Gio模块进行文件操作

发布时间:2023-12-18 01:37:00

在Python中,可以使用gi.repository.Gio模块进行文件和目录的操作。Gio模块提供了用于管理文件和目录的功能,包括读取、写入、复制、移动、删除等操作。下面是一些常见的用例示例。

1. 获取文件信息

可以使用Gio.Filequery_info()方法获取文件的详细信息,例如文件大小、创建时间、修改时间等。

from gi.repository import Gio

file = Gio.File.new_for_path('/path/to/file.txt')
info = file.query_info(
    'standard::size,standard::creation-time,standard::modification-time',
    Gio.FileQueryInfoFlags.NONE)
size = info.get_size()
ctime = info.get_attribute_uint64('standard::creation-time')
mtime = info.get_attribute_uint64('standard::modification-time')

2. 复制文件

使用Gio.Filecopy()方法可以将文件复制到指定目录下。

from gi.repository import Gio

src_file = Gio.File.new_for_path('/path/to/source.txt')
dest_dir = Gio.File.new_for_path('/path/to/destination')
src_file.copy(dest_dir, Gio.FileCopyFlags.NONE, None, None)

3. 移动文件

使用Gio.Filemove()方法可以将文件从一个位置移动到另一个位置。

from gi.repository import Gio

src_file = Gio.File.new_for_path('/path/to/source.txt')
dest_dir = Gio.File.new_for_path('/path/to/destination')
src_file.move(dest_dir, Gio.FileCopyFlags.NONE, None, None)

4. 删除文件

可以使用Gio.Filedelete()方法删除文件。

from gi.repository import Gio

file = Gio.File.new_for_path('/path/to/file.txt')
file.delete()

5. 列出目录下的文件

使用Gio.FileEnumerator可以列出目录下的文件和子目录。

from gi.repository import Gio

dir = Gio.File.new_for_path('/path/to/directory')
dir_enum = dir.enumerate_children(
    'standard::name', Gio.FileQueryInfoFlags.NONE, None)
for info in dir_enum:
    if Gio.FileType.DIRECTORY == info.get_file_type():
        print("Directory: %s" % info.get_name())
    else:
        print("File: %s" % info.get_name())

6. 创建目录

使用Gio.Filemake_directory()方法可以创建目录。

from gi.repository import Gio

dir = Gio.File.new_for_path('/path/to/new-directory')
dir.make_directory_with_parents()

以上是一些使用gi.repository.Gio模块进行文件操作的例子。通过使用这些方法,可以方便地进行文件和目录的读写、复制、移动和删除等操作。