使用Python中的gi.repository.Gio模块进行文件操作
发布时间:2023-12-18 01:37:00
在Python中,可以使用gi.repository.Gio模块进行文件和目录的操作。Gio模块提供了用于管理文件和目录的功能,包括读取、写入、复制、移动、删除等操作。下面是一些常见的用例示例。
1. 获取文件信息
可以使用Gio.File的query_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.File的copy()方法可以将文件复制到指定目录下。
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.File的move()方法可以将文件从一个位置移动到另一个位置。
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.File的delete()方法删除文件。
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.File的make_directory()方法可以创建目录。
from gi.repository import Gio
dir = Gio.File.new_for_path('/path/to/new-directory')
dir.make_directory_with_parents()
以上是一些使用gi.repository.Gio模块进行文件操作的例子。通过使用这些方法,可以方便地进行文件和目录的读写、复制、移动和删除等操作。
