gpt4 book ai didi

python - Shutil.copy 导致文件数据删除

转载 作者:行者123 更新时间:2023-11-28 22:51:08 28 4
gpt4 key购买 nike

我正在使用 shutil.copy 将一个文件的内容复制到另一个文件。然而,它导致我的原始文件被删除,并出现“文件中没有数据”的错误

我第一次尝试这个

    import shutil
shutil.copy('keywords.txt', 'keywordsfinal.txt')

然后被告知文件需要以可写格式打开

    import shutil
ab = open("keywords.txt","w")
abc = open("keywordsfinal.txt","w")
shutil.copy('keywords.txt', 'keywordsfinal.txt')
ab.close()
abc.close()

然而,对于这两种代码,即使我在每个 .txt 文件中都有内容,例如 test1 和 test2,这两个文件都将返回空。

我以前有过这个工作,大约 6 个月后返回到我的程序中发现了这个错误。任何帮助表示赞赏。

但是最近也开始出现以下错误,我不知道它是什么以及它是否与我的代码相关。

 Traceback (most recent call last):
File "C:\Python33\lib\random.py", line 249, in choice
i = self._randbelow(len(seq))
File "C:\Python33\lib\random.py", line 225, in _randbelow
r = getrandbits(k) # 0 <= r < 2**k
ValueError: number of bits must be greater than zero

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:\Users\*******\Desktop\*******\*********Python\new\Final - Copy.py", line 84, in <module>
a = random.choice(list(f)).strip() #.strip cleans the line \n problem
File "C:\Python33\lib\random.py", line 251, in choice
raise IndexError('Cannot choose from an empty sequence')
IndexError: Cannot choose from an empty sequence

最佳答案

需要先关闭文件句柄,然后才能使用shutil。如果您在使用 copy() 之前不关闭文件句柄,shutil 将只创建目标文件,但它将保持为空。

上面的代码应该是这样的:

import shutil
ab = open("keywords.txt","w")
abc = open("keywordsfinal.txt","w")
ab.close()
abc.close()
shutil.copy('keywords.txt', 'keywordsfinal.txt')

关于python - Shutil.copy 导致文件数据删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21997347/

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