gpt4 book ai didi

python - 无法复制压缩文件

转载 作者:太空宇宙 更新时间:2023-11-03 16:00:56 24 4
gpt4 key购买 nike

我需要使用特定名称多次复制各种文件,并且我希望使该过程自动化。这是我的Python代码:

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 是压缩文件,但我不知道如何解决这个问题。任何帮助是极大的赞赏。

附:当然,当我尝试使用 .gz 文件时,我也会更改“扩展名”变量。

提前谢谢您!

最佳答案

正如评论中所述,使用 shutil 效率更高。

您收到错误是因为您的操作系统执行 newline translation在文本文件上。因此,要在所有文件上正确使用上述代码,您需要以二进制模式打开它们,例如

open(infile, 'rb') 

open(new_file + "-" + str(copy_number) + extension, 'wb')

这里是 open 的 Python 2 文档。和this answer有一个方便的标准文件模式表。

关于python - 无法复制压缩文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40339538/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com