我将创建一个软件,希望能够接受压缩文件。由于文件读写到处都有用到,我创建了一个实用函数来打开文件,它能为某些压缩文件类型处理打开/关闭操作。
示例代码:
问题是,当使用这段代码时,文件句柄似乎在函数返回时关闭。我是否可以使用
将以下内容添加到上面的代码中以获得最小的非工作示例:
示例代码:
def return_file_handle(input_file, open_mode="r"):
""" Handles compressed and uncompressed files. Accepts open modes r/w/w+ """
if input_file.endswith(".gz")
with gzip.open(input_file, open_mode) as gzipped_file_handle:
return gzipped_file_handle
问题是,当使用这段代码时,文件句柄似乎在函数返回时关闭。我是否可以使用
with open
实现我想要的功能,还是需要自己处理关闭?将以下内容添加到上面的代码中以获得最小的非工作示例:
for line in return_file_handle(input_bed, "rb"):
print line
使用以下步骤创建一个经过gzip压缩的文本文件:
echo "hei\nder!" | gzip - > test.gz
错误消息:
Traceback (most recent call last):
File "check_bed_against_blacklist.py", line 26, in <module>
check_bed_against_blacklist("test.gz", "bla")
File "check_bed_against_blacklist.py", line 15, in check_bed_against_blacklist
for line in return_file_handle(input_bed, "r"):
ValueError: I/O operation on closed file.