如何将帮助(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.帮助:)