Python:关闭和删除文件



我正在尝试解压缩一个文件,读取其中一个提取的文件,并删除提取的文件。

  1. 提取的文件(例如,我们得到了file1和file2)
  2. 读取文件1并关闭它。

    with open(file1, 'r') as f:
        data = f.readline()
    f.close()
    
  3. 用"数据"做点什么。

  4. 删除提取的文件。

    os.remove(file1)
    

一切都很顺利,只是最后收到了这些信息。这些文件也被删除。如何正确关闭文件?

    /tmp/file1: No such file or directory
    140347508795048:error:02001002:system library:fopen:No such file or directory:bss_file.c:398:fopen('/tmp/file1','r')
    140347508795048:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:400:

更新:(我的脚本看起来和这些相似)

#!/usr/bin/python
import subprocess, os
infile = "filename.enc"
outfile = "filename.dec"
opensslCmd = "openssl enc -a -d -aes-256-cbc -in %s -out %s" % (infile, outfile)   
subprocess.Popen(opensslCmd, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE,      close_fds=True)
os.remove(infile)

withfile上下文管理器一起使用时,无需关闭文件句柄,当作用域发生更改时,即读取行完成时,句柄会自动关闭。

请参阅python教程

您看到的错误不是Python报告的错误。它们的意思不是Python试图打开这些文件,尽管很难从你的小片段中判断出是什么。

如果您只是想从zip文件中检索一些数据,那么就没有理由将它们提取到磁盘中。您可以使用zipfile.ZipFile.open直接从zip文件中读取数据,只提取到内存中。

相关内容

  • 没有找到相关文章

最新更新