Python - OSError:[WinError 17]系统无法将文件移动到不同的磁盘驱动器:

python移动

1个回答

写回答

18032018813

2025-07-08 09:50

+ 关注

Python
Python

Python - OSError:[WinError 17]系统无法将文件移动到不同的磁盘驱动器

在使用Python编程时,我们经常需要处理文件的读取、写入和移动等操作。然而,有时候在移动文件时可能会遇到一个名为OSError的错误,错误信息为“[WinError 17]系统无法将文件移动到不同的磁盘驱动器”。这个错误提示告诉我们,系统不能直接将文件从一个磁盘驱动器移动到另一个磁盘驱动器,而需要先复制文件到目标驱动器,再删除源文件。

为了更好地理解这个错误,下面我们将通过一个案例代码来说明。

首先,我们需要创建两个不同的磁盘驱动器,分别称为源驱动器和目标驱动器。我们可以使用Python的os模块来创建这两个驱动器。下面是一个示例代码:

Python

import os

# 创建源驱动器

os.makedirs("C:\\source_drive")

# 创建目标驱动器

os.makedirs("D:\\target_drive")

在上述代码中,我们使用os.makedirs()函数分别在C盘和D盘下创建了名为source_drive和target_drive的文件夹,这两个文件夹将作为源驱动器和目标驱动器。

接下来,我们将在源驱动器中创建一个名为test.txt的文件,并尝试将其移动到目标驱动器。下面是相应的代码:

Python

import shutil

# 在源驱动器中创建文件

with open("C:\\source_drive\\test.txt", "w") as file:

file.write("This is a test file.")

# 尝试将文件从源驱动器移动到目标驱动器

try:

shutil.move("C:\\source_drive\\test.txt", "D:\\target_drive\\test.txt")

except OSError as e:

print("移动文件时出现错误:", str(e))

在上述代码中,我们使用shutil.move()函数将源驱动器中的test.txt文件移动到目标驱动器。但是,由于源驱动器和目标驱动器位于不同的磁盘上,系统无法直接移动文件,于是抛出了OSError错误。

为了解决这个问题,我们需要先将文件从源驱动器复制到目标驱动器,然后再删除源驱动器中的文件。下面是修改后的代码:

Python

import shutil

# 在源驱动器中创建文件

with open("C:\\source_drive\\test.txt", "w") as file:

file.write("This is a test file.")

# 复制文件到目标驱动器

shutil.copy2("C:\\source_drive\\test.txt", "D:\\target_drive\\test.txt")

# 删除源驱动器中的文件

os.remove("C:\\source_drive\\test.txt")

在上述代码中,我们使用shutil.copy2()函数将源驱动器中的test.txt文件复制到目标驱动器,然后使用os.remove()函数删除源驱动器中的文件。这样就成功地将文件从一个磁盘驱动器移动到另一个磁盘驱动器了。

在Python编程中,当我们需要将文件从一个磁盘驱动器移动到另一个磁盘驱动器时,有时候会遇到OSError错误,错误信息为“[WinError 17]系统无法将文件移动到不同的磁盘驱动器”。这是因为系统无法直接移动文件,需要先复制文件到目标驱动器,再删除源驱动器中的文件。通过使用shutil.copy2()函数和os.remove()函数,我们可以成功地将文件从一个磁盘驱动器移动到另一个磁盘驱动器。

希望本文能够帮助你解决这个问题,让你在Python编程中更加顺利地进行文件操作。

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号