要确保程序只从sys.stdin获取文件数据,可以使用以下方法:
import sys
if sys.stdin.isatty():
# 输入来自终端
filename = input("请输入文件名:")
with open(filename, 'r') as file:
data = file.read()
else:
# 输入不来自终端
data = sys.stdin.read()
import sys
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-f', '--file', help='输入文件名')
args = parser.parse_args()
if args.file:
# 使用命令行参数指定了文件名
with open(args.file, 'r') as file:
data = file.read()
else:
# 没有指定文件名,直接从sys.stdin读取数据
data = sys.stdin.read()
这样可以通过命令行参数 -f
或 --file
来指定文件名,如果没有指定文件名,则程序会从sys.stdin读取数据。
以上是确保程序只从sys.stdin获取文件数据的两种方法。根据具体的使用场景和需求,选择适合的方法即可。
关于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体的云计算品牌商,无法给出相关链接。但腾讯云提供了丰富的云计算服务,可以通过访问腾讯云官方网站获取更多信息。
领取专属 10元无门槛券
手把手带您无忧上云