shutil.move(src,dst)识别路径的原理??

1.关于python文件操作函数shutil.move[src.dst]疑问,src是不是必须指定路径呢.
2.我想知道为什么shutil.move(f,folder_name)里面f..python可以识别f的路径呢?我觉这里没有逻辑而言???因为这里的f没有拼装任何路径. 只是for loop 里面一个 f 变量而已 ..
3.下列代码中文件复制成功,但是从表面上看 f 没有获取任何路径,请问是如何判断的f路径的呢。。
代码示意:
`
import shutil
import os

path = './' #当前路径下有若干个文件或者有若干个文件夹.
files = os.listdir(path)

for f in files:

folder_name = os.path.join('./',f.split('.')[-1])
if not os.path.exists(folder_name):
    os.makedirs(folder_name)
    shutil.move(f,folder_name)
else:
    shutil.move(f,folder_name)
    
   `
阅读 4.6k
2 个回答

这可以理解为文件路径解析问题,适用于所有文件操作,不仅是 shutil.move()

文件路径可分两类:

  1. 绝对路径
    即根据此路径可直接找到文件,与进程当前目录无关。
    比如 "C:\Windows\system32\user32.dll"
  2. 相对路径
    实际的文件位置由进程的 当前目录 合成。比如:

    当前目录 相对路径 实际文件位置
    C:\Windows\ user32.dll C:\Windows\user32.dll
    C:\Windows\system32\ user32.dll C:\Windows\system32\user32.dll
    C:\Windows\system32\ ..\user32.dll C:\Windows\user32.dll

    在 python 中,使用 os.getcwd() 可获取进程的当前目录, os.path.join() 可合成路径。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题