shutil.copystat() FileNotFoundError: [Errno 2] No such file or directory

shutil.copystat() FileNotFoundError: [Errno 2] No such file or directory

我正在尝试使用 shutil.copystat() 复制文件。这是我的代码:

import os
from os import path
import shutil

def main():
  if path.exists("textfile.txt"):
    src = path.realpath("textfile.txt")
    dest = src + ".bak"
    shutil.copystat(src, dest)
 
if __name__ == "__main__":
  main()

但是,这会导致以下错误:

Traceback (most recent call last):
  File "/Users/x/Development/Python/Exercise Files/Ch4/shell_start.py", line 30, in <module>
    main()
  File "/Users/x/Development/Python/Exercise Files/Ch4/shell_start.py", line 19, in main
    shutil.copystat(src, dest)
  File "/opt/homebrew/Cellar/python@3.9/3.9.5/Frameworks/Python.framework/Versions/3.9/lib/python3.9/shutil.py", line 375, in copystat
    lookup("utime")(dst, ns=(st.st_atime_ns, st.st_mtime_ns),
FileNotFoundError: [Errno 2] No such file or directory

我打印了路径,都是正确的。我的文件结构如下:

/Ch4
    /shell_start.py
    /textfile.txt

有人知道我做错了什么吗?

替换:

shutil.copystat(src, dest)

作者:

shutil.copy2(src, dest)

如果您想使用 shutil.copystat,请执行:

shutil.copy(src, dest)
shutil.copystat(src, dest)

阅读 shutil.copy2

的文档

shutil.copystat 不复制文件,它只复制两个现有文件之间的状态位。你要的是shutil.copy2.