Ниже демонстрация « как копировать файлы в Python» из девяти видов методов .
- shutil CopyFile метод ()
- shutil копия () метод
- shutil copyfileobj метод ()
- shutil copy2()方法
- ОС POPEN метод
- Система ОС () метод
- Автор () метод
- По уходу за детьми звонки () метод
- Способ по уходу за детьми check_output метод ()
Способ 1. Shutil CopyFile ()
Единственный способ копирования содержимого источника к месту назначения только тогда , когда цель записи. Если у вас нет разрешения на запись брошено IOError .
Он считывается путем открытия входного файла, игнорируя его тип файла. Далее, он не будет отличаться обработкой для специальных файлов, они не будут копировать новый специальный файл.
Указанное в CopyFile () метод с функцией нижнего уровня copyfileobj () ниже. Это имя файла в качестве аргумента, и они открытый дескриптор файла передается copyfileobj () . Этот метод имеет необязательный третий параметр, вы можете использовать , чтобы указать длину буфера. Он будет затем открыть файл , указанный в размере блока буфера чтения. Однако, по умолчанию является одноразовым читать весь файл.
Если вы все еще путаются в мире программирования, вы можете присоединиться к нам , чтобы узнать Python пряжку Цюнь: 784758214, посмотрите на то, как пожилые люди учатся. Обмен опытом. Из основного веб - разработки питона сценария, рептилии, Джанго, интеллектуального анализа данных и других проектов по борьбе с нулевой на основе данных заканчиваем. Учитывая , чтобы каждый маленький питон партнера! Доля некоторых методов обучения и необходимо обратить внимание на мелкие детали, нажмите на Присоединяйтесь к нам питон сбор обучаемого
Следующие CopyFile () метод точки.
- Он будет копировать содержимое источника в файл с именем цели.
- Если адресат не доступен для записи, операция копирования приведет IOError исключения.
- Если файлы источника и назначения совпадают, он возвращает SameFileError .
- Однако, если адресат под другим именем ранее существовавший, копия перезапишет его содержимое.
- Если адресат является каталогом, то это означает, что этот метод не будет скопирован в каталог, ошибка будет происходить 13.
- Он не поддерживает копирования файлов, такие как символ или блок и трубопроводы.
Способ 2. Shutil Копировать ()
копия () функция аналогична методу «СР» в команде Unix. Это означает , что если адресат папку, где он будет создан исходный файл с таким же именем ( базовое имя нового файла). Кроме того, способ , чтобы скопировать его содержимое разрешения будут нацелены на исходные файлы , которые будут синхронизированы. Если вы хотите скопировать одни и те же файлы, он также может бросить SameFileError .
Способ 3. Shutil Copyfileobj ()
Этот метод копирует файл на целевом путь или файловый объект. Если целью является объектный файл, вам нужно вызвать copyfileobj () после явного закрытия. Предполагается , что необязательный параметр (размер буфера), вы можете использовать его , чтобы обеспечить длину буфера. Это число байтов , хранящихся в памяти во время репликации. Система использует размер по умолчанию 16Кб.
4. Shutil Copy2()方法
Тем не менее, COPY2 () метод функция аналогична Copy () . Однако, в то же время , чтобы скопировать данные, вы можете также добавить время доступа и изменения раз в метаданных. Копирование и тот же файл может вызвать SameFileError .
Для любопытного - разница между () CopyMode () и Copystat.
5. Os Popen()方法
该方法创建一个指向或来自该命令的管道。它返回一个连接到管道的打开的文件对象。您可以根据文件打开模式(即’r’(默认)或’w’)使用它进行读取或写入。
- 模式 –它可以是’r’(默认)或’w’。
- bufsize –如果其值为0,则不会发生缓冲。如果设置为1,则在访问文件时将进行行缓冲。如果您提供的值大于1,则缓冲将以指定的缓冲区大小进行。但是,对于负值,系统将采用默认缓冲区大小。
对于Windows操作系统。
对于Linux操作系统。
6. Os System()方法
它是运行任何系统命令的最常见方式。使用system()方法,可以在subshell中调用任何命令。在内部,这种方法会调用标准的C库函数。
此方法返回命令的退出状态。
对于Windows操作系统。
对于Linux操作系统。
7.以Async方式使用线程库的Python文件复制
如果要以异步方式复制文件,请使用以下方法。在这里,我们使用Python的线程模块在后台运行复制操作。
使用此方法时,请确保采用锁定以避免死锁。如果您的应用程序正在使用多个线程读取/写入文件,您可能会面对它。
8.使用子进程的Call()方法在Python中复制一个文件
子进程模块提供了一个简单的界面来处理子进程。它使我们能够启动子进程,附加到其输入/输出/错误管道,并检索返回值。
子流程模块旨在替代传统模块和功能,如*os.system,os.spawn ,os.popen *,popen2。***。
它公开一个call()方法来调用系统命令来执行用户任务。
9.使用子进程的Check_output()方法在Python中复制文件
Использование суб - процесс в check_output () метод, вы можете запустить внешнюю команду или программу и захватить добычу. Он также поддерживает трубопровод.