用Python移动文件(Windows)
我正在尝试写一个Python脚本,把一个文件从一个文件夹移动到另一个文件夹。我试了两种不同的方法,但都出错了。
第一种方法:
import os
os.rename('C:\users\python\nonpython\adam.spc','C:\users\python\target\adam.spc')
出现了错误
Traceback (most recent call last):
File "C:/Users/Python/movefile.py", line 4, in <module>
os.rename('C:\users\python\nonpython\adam.spc','C:\users\python\target\adam.spc')
WindowsError: [Error 123] Felaktig syntax för filnamn, katalognamn eller volymetikett
("文件名、目录名或卷标的语法错误")
第二种方法:
import shutil
def move(src, dest):
shutil.move(src, dest)
src='C:\users\python\nonpython\Adam.spc'
dest='C:\users\python\target\Adam.spc'
move(src,dest)
出现了错误
Traceback (most recent call last):
File "C:/Users/Python/movefile2.py", line 9, in <module>
move(src,dest)
File "C:/Users/Python/movefile2.py", line 4, in move
shutil.move(src, dest)
File "C:\Python27\lib\shutil.py", line 301, in move
copy2(src, real_dst)
File "C:\Python27\lib\shutil.py", line 130, in copy2
copyfile(src, dst)
File "C:\Python27\lib\shutil.py", line 82, in copyfile
with open(src, 'rb') as fsrc:
IOError: [Errno 22] invalid mode ('rb') or filename: 'C:\\users\\python\nonpython\\Adam.spc'
我该怎么做才能让它正常工作呢?
5 个回答
0
你不能用重命名的方法把一个文件移动到另一个文件夹,但你可以用移动的方法来重命名一个文件。移动文件时可以覆盖已经存在的文件(用 /y 选项),而重命名文件则不能。
你可以用斜杠或者反斜杠,反斜杠在需要用到的时候要用两个反斜杠来表示一个,四个反斜杠则表示两个。
你的移动函数需要有一个返回值。
0
试着把路径中的反斜杠换成正斜杠:
os.rename('C:/users/python/nonpython/adam.spc','C:/users/python/target/adam.spc')
0
试着用斜杠代替反斜杠,也就是把 \
替换成 /
。或者可以使用 r'C:\users\python\nonpython\adam.spc'
这种写法。
0
你的文件夹名字应该用斜杠,而不是反斜杠。
import os
src = 'C:/users/python/nonpython/Adam.spc'
dest = 'C:/users/python/target/Adam.spc'
os.rename(src, dest)
3
解决这个问题有三种方法:
- 使用正斜杠:
'path/to/your/stuff'
- 或者使用原始字符串:
r'path\to\your\stuff'
- 或者至少要对反斜杠进行转义:
'path\\to\\your\\stuff'
这样做是因为 \
在字符串中是一个特殊字符,用来表示一些特殊的字符,比如 \n
(换行符)。所以当你想动态处理路径时,这样的写法会导致问题。