Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.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
是否强制Python从命令行更新命令历史文件?_Python_Python 3.x_Command History - Fatal编程技术网

是否强制Python从命令行更新命令历史文件?

是否强制Python从命令行更新命令历史文件?,python,python-3.x,command-history,Python,Python 3.x,Command History,我通过从Bash命令行发出Python来使用没有GUI/IDE的Python。我在Cygwin环境中使用它,它在许多方面的行为类似于Linux系统 用于Python命令行中发出的命令的历史记录的文件存储在~/.Python\u history中。我可以很容易地快速进入并拖动内容,以便使用vim进行操作。还可以很容易地将被操纵的内容拖动到系统剪贴板中,以便在Python命令行中粘贴。(另一方面,对于命令的更多战术修订,我只使用readline对以前的命令和单行命令进行vim。) 我发现~/.pyt

我通过从Bash命令行发出
Python
来使用没有GUI/IDE的Python。我在Cygwin环境中使用它,它在许多方面的行为类似于Linux系统

用于Python命令行中发出的命令的历史记录的文件存储在
~/.Python\u history
中。我可以很容易地快速进入并拖动内容,以便使用vim进行操作。还可以很容易地将被操纵的内容拖动到系统剪贴板中,以便在Python命令行中粘贴。(另一方面,对于命令的更多战术修订,我只使用readline对以前的命令和单行命令进行vim。)

我发现
~/.python\u history
不会在每个命令后更新。我不确定它多久更新一次,但很明显,退出Python会导致它更新。用Ctrl+Z组合键放在背景中不起作用

从Python命令行是否有一种快速方便的方法来强制更新到
~/.Python_history

通读一遍,我发现可能是您正在搜索的内容:

将历史记录列表保存到readline历史记录文件,覆盖任何现有文件。 默认文件名为
~/.history
在交互式口译员中,首先要做的是

import readline.write_history_文件为whf#write history文件
然后您可以执行
whf()
whf(“path/to/.historyfile”)
,您的python历史将立即保存到磁盘

编辑:

我不确定它多久更新一次


它仅在您退出解释器时更新。如果您杀死它,历史记录将不会保存,
Ctrl+Z
只会导致解释器挂起。如果随后取消暂停(例如,通过执行
fg
bg
)并正常退出,历史文件将被写入。

谢谢,程序员。我将不得不等待,直到我处于一个良好的位置来更新我的主机环境(Cygwin)。这就是我使用的Python。它当前无法识别
导入readline.write_history_文件为whf#write history文件
“readline”不是一个包
@user36800啊,我不知道你在使用Windows读线。尝试使用
pyreadline
pip安装pyreadline
);我听说这是Windows上的替代品。Cygwin提供了一个类似unix的层,包括
readline
。我将
readline
与bash、octave和pythonsangui一起使用。我还没有在Cygwin上搜索Python包的
readline
,但我有点确定它会在那里。@user36800好的,也许
pip安装readline
可以工作?可以。我的
pip安装
运气很差。通过Cygwin安装系统范围的Python,并在用户自己的文件夹树下安装特定于用户的包,这是我没有解决的问题。但是,即使在安装了Cygwin之后,我可能仍然必须这样做。