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
다른 이유들 때문에 그리고 효과가 있는 것 같아, 나는 그것을 계속하는 경향이 있다.
이는 스크립트를 실행하고 있는 셸에 따라 달라집니다.그mv
Linux ( 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
'programing' 카테고리의 다른 글
SQL에서 EXISTS와 IN의 차이점은 무엇입니까? (0) | 2023.04.19 |
---|---|
Swift에서 어레이에 요소 추가 (0) | 2023.04.19 |
단일 파일 하드 리셋 (0) | 2023.04.13 |
목록을 python에서 dict 키로 사용할 수 없는 이유는 무엇입니까?사용할 수 있는 것과 사용할 수 없는 것이 정확히 무엇이고, 그 이유는 무엇입니까? (0) | 2023.04.13 |
클래스가 NSObjectProtocol을 준수하지 않습니다. (0) | 2023.04.13 |