📅  最后修改于: 2023-12-03 15:04:22.643000             🧑  作者: Mango
shutil.copystat(src, dst, *, follow_symlinks=True) 方法用于将源文件的元数据复制到目标文件中,包括权限、时间戳、所有者等信息。
shutil.copystat(src, dst, *, follow_symlinks=True)
该方法返回 None。
我们创建一个名为 test_file.txt
的文本文件,并设置其权限为 777:
import os
import shutil
file_name = 'test_file.txt'
with open(file_name, 'w') as f:
f.write('Hello, world!')
os.chmod(file_name, 0o777)
现在我们复制该文件到另一个目录,并保留其元数据:
shutil.copystat(file_name, 'new_directory/' + file_name)
现在我们检查新文件的权限和时间戳是否与源文件相同:
src_stat = os.stat(file_name)
dst_stat = os.stat('new_directory/' + file_name)
print(f"src file mode: {src_stat.st_mode:0o6o}")
# 输出:src file mode: 100777
print(f"dst file mode: {dst_stat.st_mode:0o6o}")
# 输出:dst file mode: 100777
print(f"src file mtime: {src_stat.st_mtime}")
# 输出:src file mtime: 1633460768.3044593
print(f"dst file mtime: {dst_stat.st_mtime}")
# 输出:dst file mtime: 1633460768.3044593
由此可见,复制元数据成功。
# Python shutil.copystat() 方法
shutil.copystat(src, dst, *, follow_symlinks=True) 方法用于将源文件的元数据复制到目标文件中,包括权限、时间戳、所有者等信息。
## 语法
```python
shutil.copystat(src, dst, *, follow_symlinks=True)
该方法返回 None。
我们创建一个名为 test_file.txt
的文本文件,并设置其权限为 777:
import os
import shutil
file_name = 'test_file.txt'
with open(file_name, 'w') as f:
f.write('Hello, world!')
os.chmod(file_name, 0o777)
现在我们复制该文件到另一个目录,并保留其元数据:
shutil.copystat(file_name, 'new_directory/' + file_name)
现在我们检查新文件的权限和时间戳是否与源文件相同:
src_stat = os.stat(file_name)
dst_stat = os.stat('new_directory/' + file_name)
print(f"src file mode: {src_stat.st_mode:0o6o}")
# 输出:src file mode: 100777
print(f"dst file mode: {dst_stat.st_mode:0o6o}")
# 输出:dst file mode: 100777
print(f"src file mtime: {src_stat.st_mtime}")
# 输出:src file mtime: 1633460768.3044593
print(f"dst file mtime: {dst_stat.st_mtime}")
# 输出:dst file mtime: 1633460768.3044593
由此可见,复制元数据成功。