小编Gil*_*l.I的帖子

无法将stdout恢复为原始(仅限终端)

我需要将所有打印语句输出到终端和文件.我在这个stackoverflow问题中找到了一个解决方案, 所以我使用

class Tee(object): 
    def __init__(self, name): 
        self.file = open(name, "a") 
        self.stdout = sys.stdout 
        sys.stdout = self 
    def __del__(self): 
        sys.stdout = self.stdout 
        self.file.close() 
    def write(self, data): 
       self.file.write(data) 
       self.stdout.write(data)

sys.stdout = Tee("log.txt")
Run Code Online (Sandbox Code Playgroud)

这很棒,

我的问题是当我想停止写入文件并返回正常操作时,只打印到终端
我试图使用del(sys.stdout)来调用del方法而没有运气.
我甚至试图将最后一行更改为:

    multiple_print = Tee("log.txt")
    sys.stdout = multiple_print
Run Code Online (Sandbox Code Playgroud)

而且使用del(multiple_print)并失败

无论我尝试了什么,进一步使用打印仍然写入终端和文件两者.

有任何想法吗?

python

8
推荐指数
1
解决办法
7101
查看次数

argparse - 带有列表/元组的可选参数

我有几个可选参数,其中一个需要存储多个值 - 即它的类型既不是字符串也不是整数。argparse 是否支持其他类型的可选参数?

例如,我想要这个命令:

>>> python example1 test_project --name try1 3
Run Code Online (Sandbox Code Playgroud)

相当于这样的代码:

args.name = {'try1', '3'}
Run Code Online (Sandbox Code Playgroud)

这可能吗?或者,action='store_true'如果他选择此选项,我是否会被迫使用然后提示用户提供更多信息?

python argparse

2
推荐指数
1
解决办法
4570
查看次数

标签 统计

python ×2

argparse ×1