Мне нужно несколько раз копировать различные файлы с определенным именем, и я хотел, чтобы процесс был автоматизирован. Это мой питон код:Невозможно скопировать сжатые файлы
number_of_copies = int(raw_input("enter number of copies "))
copy_number = 1
infile = raw_input("file to be copied ")
new_file = raw_input("What's the name of the new file?")
extension = ".fastq"
indata = open(infile)
file_to_copy = str(indata.read())
while copy_number < number_of_copies:
copy = open(new_file + "-" + str(copy_number) + extension, 'w')
copy.write(file_to_copy)
copy_number = copy_number + 1
indata.close()
copy.close()
В этом случае я знаю, расширение моего файла, так что я жестко закодированы, и я просто изменить эту переменную в скрипте соответственно. Сценарий отлично работает с моими файлами .fastq (в основном текстовыми файлами), но как только я попробую его в файле fastq.gz (сжатом), копия имеет размер 1kb (от оригинала> 300 Mb). Я считаю, проблема связана с тем, что .gz является сжатым файлом, но я не знаю, как это решить. Любая помощь приветствуется.
p.s. конечно, когда я пытаюсь использовать файлы .gz, я также изменяю переменную «extension».
Заранее благодарю вас!
Проверьте эту ссылку https://docs.python.org/2/library/shutil.html, я думаю, лучше использовать функцию shutil.copyfile –
Это в Windows? –
Да, взято из документации «В Windows, владельцы файлов, ACL и альтернативные потоки данных не копируются». –