Argparse 重新打开文件。
Argparse Reopening file.
我正在使用 argparse 模块,并且我有一个不断附加到的日志文件。我想打开 args.file,对内容做一些处理,然后关闭它,过一段时间再打开。
一段代码示例:
import argparse
import time
parser = argparse.ArgumentParser()
parser.add_argument('file',type=file)
args = parser.parse_args()
for _ in range(3):
data = args.file.read()
print data
time.sleep(3)
请注意,args.file.seek(0) 不是此处的解决方案。我可以使用 args.file.close() 关闭文件,但如何再次打开它?
我可以使文件名参数只是文件名的普通字符串,但我想知道一个将参数类型保持为文件名的解决方案。
您可以使用
再次打开它
args.file = open(args.file.name)
parser.add_argument('file',type=file)
不代表,the argument is to be a file
。意思是
value = file(astring)
args.file = value
type
参数是一个对字符串进行操作的函数。在 Python3 file
中已被删除;等价于:
parser.add_argument('file',type=open)
有一个 argparse.FileType
class 可以用来打开具有定义模式的文件;它还识别 -
值。这在接受输入和输出但几乎不做其他事情的小脚本中很有用。但通常最好自己打开文件,最好是在 with
上下文中,因此确保在不再使用时将其关闭。
parser.add_argument('file_name')
args = parser.parse_args()
for _ in range(3):
with open(args.file_name) as f:
data = f.read()
print data
time.sleep(3)
Filetype
的作用是在文件无法打开时给出 'nice' argparse 错误消息。例如,如果名称在命令行中输入错误。
我正在使用 argparse 模块,并且我有一个不断附加到的日志文件。我想打开 args.file,对内容做一些处理,然后关闭它,过一段时间再打开。
一段代码示例:
import argparse
import time
parser = argparse.ArgumentParser()
parser.add_argument('file',type=file)
args = parser.parse_args()
for _ in range(3):
data = args.file.read()
print data
time.sleep(3)
请注意,args.file.seek(0) 不是此处的解决方案。我可以使用 args.file.close() 关闭文件,但如何再次打开它?
我可以使文件名参数只是文件名的普通字符串,但我想知道一个将参数类型保持为文件名的解决方案。
您可以使用
再次打开它args.file = open(args.file.name)
parser.add_argument('file',type=file)
不代表,the argument is to be a file
。意思是
value = file(astring)
args.file = value
type
参数是一个对字符串进行操作的函数。在 Python3 file
中已被删除;等价于:
parser.add_argument('file',type=open)
有一个 argparse.FileType
class 可以用来打开具有定义模式的文件;它还识别 -
值。这在接受输入和输出但几乎不做其他事情的小脚本中很有用。但通常最好自己打开文件,最好是在 with
上下文中,因此确保在不再使用时将其关闭。
parser.add_argument('file_name')
args = parser.parse_args()
for _ in range(3):
with open(args.file_name) as f:
data = f.read()
print data
time.sleep(3)
Filetype
的作用是在文件无法打开时给出 'nice' argparse 错误消息。例如,如果名称在命令行中输入错误。