我正在尝试编写一个将文件从一个目录移动到另一个目录的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
(&#34;文件名,目录名或卷标的错误语法&#34;)
第二名:
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'
我该怎么做才能使这项工作?
答案 0 :(得分:1)
解决此问题的3个选项:
'path/to/your/stuff'
r'path\to\your\stuff'
'path\\to\\your\\stuff'
这需要这样做,因为\
是字符串中的特殊字符,用于指示\n
之类的特殊字符。因此,当您想要使用路径动态工作时,这将会非常糟糕。
答案 1 :(得分:0)
尝试使用斜杠而不是反斜杠 - 将\
替换为/
。或使用r'C:\users\python\nonpython\adam.spc'
答案 2 :(得分:0)
您的目录名称应该是斜杠而不是反斜杠。
import os
src = 'C:/users/python/nonpython/Adam.spc'
dest = 'C:/users/python/target/Adam.spc'
os.rename(src, dest)
答案 3 :(得分:0)
尝试使用路径中的正斜杠替换反斜杠:
os.rename('C:/users/python/nonpython/adam.spc','C:/users/python/target/adam.spc')
答案 4 :(得分:0)
您不能使用重命名将文件移动到另一个目录,但是可以使用move来重命名文件。 Move可以替换现有文件(使用/ y),而不能重命名。
您可以同时使用斜杠或反斜杠,需要在需要1的2个反斜杠和在需要2的4个反斜杠中转义反斜杠。
您的函数移动需要返回。