Python中使用gi.repository.Gio进行文件操作
发布时间:2024-01-04 07:38:16
在Python中,使用gi.repository.Gio模块可以方便地进行文件和目录的操作。Gio是GLib库的一部分,提供了访问文件系统的功能。
下面是一些使用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模块提供了更多用于文件操作的函数和类,可以根据具体需求进行进一步学习和使用。
