Python Argparse正在重新打开文件。
我使用的是argparse模块,我有一个日志文件,它被不断地附加到。我想打开args.file,对内容做一些处理,然后关闭它,过一段时间再打开它 下面是一段代码示例:Python Argparse正在重新打开文件。,python,io,argparse,Python,Io,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.fi
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()关闭该文件,但如何再次打开它
我可以将文件名参数设置为文件名的普通字符串,但我想知道一种将argumenttype保留为文件名的解决方案 您可以使用
args.file = open(args.file.name)
您可以使用重新打开它
args.file = open(args.file.name)
并不意味着,参数是一个文件
。这意味着
value = file(astring)
args.file = value
type
参数是对字符串进行操作的函数。在Python3中,文件
已被删除;相当于:
parser.add_argument('file',type=open)
有一个argparse.FileType
类,可用于以定义的模式打开文件;它还识别-
值。这在接受输入和输出的小型脚本中非常有用,其他功能很少。但一般来说,最好是自己打开文件,最好是在和
上下文中打开,以便确保不再使用时关闭文件
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错误消息。例如,如果名称在命令行中输入错误
并不意味着,参数是一个文件
。这意味着
value = file(astring)
args.file = value
type
参数是对字符串进行操作的函数。在Python3中,文件
已被删除;相当于:
parser.add_argument('file',type=open)
有一个argparse.FileType
类,可用于以定义的模式打开文件;它还识别-
值。这在接受输入和输出的小型脚本中非常有用,其他功能很少。但一般来说,最好是自己打开文件,最好是在和
上下文中打开,以便确保不再使用时关闭文件
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错误消息。例如,如果名称在命令行中输入错误。我认为使用字符串类型并每次打开文件更干净。我认为使用字符串类型并每次打开文件更干净。