programing

Python에서 파일을 이동하려면 어떻게 해야 하나요?

powerit 2023. 4. 19. 00:29
반응형

Python에서 파일을 이동하려면 어떻게 해야 하나요?

Python에서와 동등한 기능을 하려면 어떻게 해야 합니까?

mv "path/to/current/file.foo" "path/to/new/destination/for/file.foo"

os.rename(), , 또는

모두 같은 구문을 사용합니다.

import os
import shutil

os.rename("path/to/current/file.foo", "path/to/new/destination/for/file.foo")
os.replace("path/to/current/file.foo", "path/to/new/destination/for/file.foo")
shutil.move("path/to/current/file.foo", "path/to/new/destination/for/file.foo")
  • 「」)"file.foo"는 source 인수 모두에 송신원 수신처둘 다 다를 경우 파일 이름과 이동 이름이 변경됩니다.
  • 새 파일이 생성되고 있는 디렉토리가 이미 존재해야 합니다.
  • 에서는, 그가 발생합니다만, Windows 에서는, 「」, 「」, 「」, 「」, 「」, 「」, 「」, 「」, 「」, 「」, 「」, 「」, 「」, 「」, 「」, 「」, 「」,os.replace()이 경우에도 파일이 자동으로 교체됩니다.
  • shutil.move간단히 호출하다os.rename대부분의 경우.그러나 대상이 원본과 다른 디스크에 있는 경우 원본 파일을 복사한 다음 삭제합니다.

일일 ~일도 although although although although 。os.rename() ★★★★★★★★★★★★★★★★★」shutil.move()는 양쪽 이름을 는 ""입니다.유닉스 mv 명령어에 가장 가까운 명령어는 다음과 같습니다.shutil.move()다른 점은os.rename()소스와 대상이 다른 디스크에 있는 경우는, 동작하지 않습니다.shutil.move()파일 디스크에 의존하지 않습니다.

에는 Python 3.4를 사용할 .pathlib의 클래스 " " Path파일을 이동합니다.

from pathlib import Path

Path("path/to/current/file.foo").rename("path/to/new/destination/for/file.foo")

https://docs.python.org/3.4/library/pathlib.html#pathlib.Path.rename

os.rename ★★★★★★★★★★★★★★★★★」shutil.move수입하다.*모든 파일을 이동하려면 문자가 필요합니다.

는 at음음음음 we we we we we we we we 。/opt/awesome파일 이름이 awesome인 소스 호출.txt의

in /opt/awesome
○ → ls
source
○ → ls source
awesome.txt

python 
>>> source = '/opt/awesome/source'
>>> destination = '/opt/awesome/destination'
>>> import os
>>> os.rename(source, destination)
>>> os.listdir('/opt/awesome')
['destination']

는 리 we we we we we를 사용했다.os.listdir폴더 이름이 실제로 변경되었는지 확인합니다. 여기 있어요.shutil이치노

>>> import shutil
>>> source = '/opt/awesome/destination' 
>>> destination = '/opt/awesome/source'
>>> shutil.move(source, destination)
>>> os.listdir('/opt/awesome/source')
['awesome.txt']

에는 소스 this번스 to to to to to to to to to to to to to to to this this this this this this this this this this this this this?awesome.txt작성한 파일이 존재합니다.에 있다

이제 폴더와 해당 파일을 원본에서 대상으로 이동한 후 다시 이동했습니다.

현재 사용하고 있는 것은 다음과 같습니다.

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)

소스 및 대상 디렉토리를 받아들여 대상 폴더가 없는 경우 대상 폴더를 만들고 파일을 이동하는 함수로 전환할 수도 있습니다., 도 가능하게 합니다.를 들어,, 「」src 「」합니다. 예를 들어 이미지를 이동하려는 경우 패턴을 사용합니다.'*.jpg'됩니다.

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))

파일 이름을 파일로 바꾸는 것이 아니라 많은 파일을 디렉토리로 이동하는 것이 문제이기 때문에 허용되는 답변은 정답이 아닙니다. shutil.move할 수 , 이을 위해 이 작업을 수행할 수 있습니다.os.rename는 (댓글에 기재된 바와 같이) 사용할 수 없습니다.이것은, 행선지에 명시적인 파일명이 필요하기 때문입니다.

수익률에 관심이 없기 때문에

import os
os.system("mv src/* dest/")

사용 시에도 가능subprocess.run()방법.

python:
>>> import subprocess
>>> new = "/path/to/destination"
>>> old = "/path/to/new/destination"
>>> process = "mv ..{} ..{}".format(old,new)
>>> subprocess.run(process, shell=True) # do not remember, assign shell value to True.

Linux 로 동작하고 있는 경우는, 정상적으로 동작합니다.mv 명령어가 없기 때문에 Windows에서 오류가 발생할 수 있습니다.

여기에 기재되어 있는 답변에 따라subprocess또 다른 옵션입니다.

다음과 같은 경우:

subprocess.call("mv %s %s" % (source_files, destination_folder), shell=True)

이 방법의 장단점을 알고 싶습니다.shutil저 같은 경우에는 이미 사용하고 있기 때문에subprocess다른 이유들 때문에 그리고 효과가 있는 것 같아, 나는 그것을 계속하는 경향이 있다.

이는 스크립트를 실행하고 있는 셸에 따라 달라집니다.mvLinux ( bash 、 sh ) b의 Windows の Git Bash 。의 경우는, .mv하다

은 해결 방법이며, 은 것것은솔솔솔 this this를 하지 않습니다.이러한 솔루션은shell를 사용합니다.mv.

from subprocess import Popen, PIPE, STDOUT

source = "path/to/current/file.foo", 
destination = "path/to/new/destination/for/file.foo"

p = Popen(["mv", "-v", source, destination], stdout=PIPE, stderr=STDOUT)
output, _ = p.communicate()
output = output.strip().decode("utf-8")
if p.returncode:
    print(f"E: {output}")
else:
    print(output)
  import os,shutil

  current_path = "" ## source path

  new_path = "" ## destination path

  os.chdir(current_path)

  for files in os.listdir():

        os.rename(files, new_path+'{}'.format(f))
        shutil.move(files, new_path+'{}'.format(f)) ## to move files from 

다른 디스크 ex.C: --> D:

언급URL : https://stackoverflow.com/questions/8858008/how-do-i-move-a-file-in-python

반응형