Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将帮助(tkinter.Tk())的内容传输到python文件_Python_Python 3.x_Tkinter - Fatal编程技术网

如何将帮助(tkinter.Tk())的内容传输到python文件

如何将帮助(tkinter.Tk())的内容传输到python文件,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,我正试图将help(tkinter.Tk())的输出传输到python文件,但由于某种原因,它没有发生 我想不使用任何子流程模块就尝试一下。下面是代码 import tkinter window=tkinter.Tk() with open('C:\\Users\\aryan21710\\help_output.txt','a') as f: #f.write(help(tkinter.Tk())) print (help(tkinter.Tk()),file=f) wit

我正试图将
help(tkinter.Tk())
的输出传输到python文件,但由于某种原因,它没有发生

我想不使用任何
子流程
模块就尝试一下。下面是代码

import tkinter

window=tkinter.Tk()

with open('C:\\Users\\aryan21710\\help_output.txt','a') as f:
    #f.write(help(tkinter.Tk()))
    print (help(tkinter.Tk()),file=f)

with open('C:\\Users\\aryan21710\\help_output.txt','r') as f:
    for line in f:
        line=line.split('\n')
        if 'destroy' in line:
            print('DESTROY FOUND IN FOLLOWING LINE:- {0}'.format(line))
由于
help()
启动交互式Python且不返回任何内容,因此必须在子流程中运行它并读取其输出:

import subprocess
cmd = 'python3 -c "import tkinter; help(tkinter.Tk())"'
process = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
现在,您可以访问
cmd.stdout
以获取
help()
的输出行。请注意,它们是字节,但您可以使用以下命令轻松地将这些行转换为单个多行字符串:

help_text = ''.join(line.decode('utf-8') for line in process.stdout)

请注意,
help
通常会启动一个交互式帮助文件,因此它不会打印到标准输出。在交互式会话中,
print(help(tkinter.Tk())
不打印任何内容。我建议在使用Windows路径时使用原始字符串,例如,您应该使用
r'C:\Users\aryan\test.txt'
而不是
'C:\\Users\\aryan\\test.txt'
我尝试使用上述代码,但无法获得所需的输出。import subprocess cmd='python3-c“import tkinter;help(tkinter.Tk())”'process=subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE)为进程中的行打印(process)。stdout:print(line)help_text=''。join(line.decode('utf-8')为进程中的行。stdout)打印(帮助文本)@您的计算机上可能没有可用的
python3
。可能您在Windows上,在这种情况下,请尝试将
cmd
更改为使用
python-c
而不是
python3-c
。谢谢Markus。是的,我在Windows上。这就是原因,python3-c不工作。如果cmd=python-c,它将返回输出。@Ary Glad.帮助:)