如何解决使用 Python 脚本复制大文件
我正在使用下面的 python 函数来制作文件的副本,我正在将其作为 Azure 数据工厂管道中数据摄取的一部分进行处理。这适用于小文件,但无法在不返回任何错误的情况下处理大文件。在为 2.2 GB 文件调用此函数时,它会在写入 107 KB 数据后停止执行而不会引发任何异常。谁能指出可能是什么问题在这里
with open(Temp_File_Name,encoding='ISO-8859-1') as a,open(Load_File_Name,'w') as b:
for line in a:
if ' blah blah ' in line:
var=line[34:42]
data = line[0:120] + var + '\n'
b.write(data)
输入和输出位置,我这里使用的是Azure Blob存储中的文件。我是按照这个方法,因为我需要读取每一行并在读取后执行一些操作
解决方法
您的代码段浪费了计算/时间将文件加载到 ram 并将其写回磁盘。使用底层操作系统通过 python pathlib
和 shutil
复制文件。
看看这个stackoverflow post。这是最佳答案:
import pathlib
import shutil
my_file = pathlib.Path('/etc/hosts')
to_file = pathlib.Path('/tmp/foo')
shutil.copy(str(my_file),str(to_file)) # For older Python.
shutil.copy(my_file,to_file) # For newer Python.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。