How to move a file?

后端 未结 9 1841
夕颜
夕颜 2020-11-22 01:07

I looked into the Python os interface, but was unable to locate a method to move a file. How would I do the equivalent of $ mv ... in Python?

&g         


        
9条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-11-22 01:33

    This is what I'm using at the moment:

    import os, shutil
    path = "/volume1/Users/Transfer/"
    moveto = "/volume1/Users/Drive_Transfer/"
    files = os.listdir(path)
    files.sort()
    for f in files:
        src = path+f
        dst = moveto+f
        shutil.move(src,dst)
    

    Now fully functional. Hope this helps you.

    Edit:

    I've turned this into a function, that accepts a source and destination directory, making the destination folder if it doesn't exist, and moves the files. Also allows for filtering of the src files, for example if you only want to move images, then you use the pattern '*.jpg', by default, it moves everything in the directory

    import os, shutil, pathlib, fnmatch
    
    def move_dir(src: str, dst: str, pattern: str = '*'):
        if not os.path.isdir(dst):
            pathlib.Path(dst).mkdir(parents=True, exist_ok=True)
        for f in fnmatch.filter(os.listdir(src), pattern):
            shutil.move(os.path.join(src, f), os.path.join(dst, f))
    

提交回复
热议问题