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

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

发布时间:2024-01-04 07:38:16

在Python中,使用gi.repository.Gio模块可以方便地进行文件和目录的操作。GioGLib库的一部分,提供了访问文件系统的功能。

下面是一些使用gi.repository.Gio进行文件操作的示例代码:

1. 检查文件是否存在:

from gi.repository import Gio

# 创建文件对象
file = Gio.File.new_for_path('/path/to/file.txt')

# 检查文件是否存在
if file.query_exists():
    print("文件存在")
else:
    print("文件不存在")

2. 获取文件信息:

from gi.repository import Gio

# 创建文件对象
file = Gio.File.new_for_path('/path/to/file.txt')

# 获取文件信息
info = file.query_info('standard::size', Gio.FileQueryInfoFlags.NONE, None)

# 打印文件大小
print("文件大小:", info.get_size())

3. 读取文件内容:

from gi.repository import Gio

# 创建文件对象
file = Gio.File.new_for_path('/path/to/file.txt')

# 以只读方式打开文件
stream = file.read()
if stream is not None:
    # 读取文件内容
    data = stream.read(None)

    # 将字节数组转为字符串并打印输出
    content = data.get_data().decode('utf-8')
    print("文件内容:", content)
else:
    print("无法打开文件")

4. 写入文件内容:

from gi.repository import Gio

# 创建文件对象
file = Gio.File.new_for_path('/path/to/file.txt')

# 以写入方式打开文件
stream = file.create(Gio.FileCreateFlags.NONE, None)
if stream is not None:
    # 写入文件内容
    content = "Hello, World!"
    stream.write(content.encode('utf-8'))

    # 关闭文件
    stream.close(None)
else:
    print("无法打开文件")

5. 复制文件:

from gi.repository import Gio

# 创建源文件对象和目标文件对象
source_file = Gio.File.new_for_path('/path/to/source_file.txt')
destination_file = Gio.File.new_for_path('/path/to/destination_file.txt')

# 复制文件
source_file.copy(destination_file, Gio.FileCopyFlags.OVERWRITE, None, None)

6. 创建目录:

from gi.repository import Gio

# 创建目录
directory = Gio.File.new_for_path('/path/to/new_directory')

# 创建目录,如果目录已存在则无操作
directory.make_directory_with_parents(None)

7. 删除文件或目录:

from gi.repository import Gio

# 创建文件对象或目录对象
file_or_directory = Gio.File.new_for_path('/path/to/file_or_directory')

# 删除文件或目录
file_or_directory.delete(None)

上述示例中所使用的方法可以满足简单的文件和目录操作需求。gi.repository.Gio模块提供了更多用于文件操作的函数和类,可以根据具体需求进行进一步学习和使用。