一尘不染

Python脚本给出`:没有这样的文件或目录`

python

我有几个运行良好的python脚本,但是如果我尝试从bash运行它,一个脚本(截至今天上午)开始给我这个错误:

: 无此文件或目录

我可以通过运行“破损”脚本python script_name.py并四处查看后,发现我的总体思路是,我的hashbang的行尾已更改(无提示),因此我查看了工作脚本的行尾并通过:set listVI中的选项破坏了脚本,如该问题所示->在文本文件中查看行尾
两个文件似乎都以相同的字符(a $)结尾,因此我对如何从此处继续感到困惑。具体来说,如果set list不是正确的方法,如何实际“看到”行的结尾。

PS:该脚本是可执行文件,而shebang就在其中。我说过,正是这个1个脚本在周末之前运行良好,但是从今天早上开始,我就收到了这个错误消息。

-编辑:-

通过运行脚本dos2unix确实可以使其再次正常工作,但是我想知道以任何方式可视化VI(M)中的行尾,或者为什么Geany首先以某种方式转换了行尾(因为我从未从事过dos
/ Windows系统)。


阅读 128

收藏
2020-12-20

共1个答案

一尘不染

从上面的注释中,您看起来好像有dos行的结尾,因此hashbang行未得到正确处理。

:set listVim中不显示行尾样式,因为该选项仅在读/写文件时使用。在内存中,行尾始终是行尾。用于文件的行尾样式保留在Vim per-
file选项中,这个名字很奇怪fileformat

要从Vim中查看/更改行尾样式,可以使用以下命令:

:set fileformat
:set ff

它会显示dosunix。您unix当然要;-)。

要快速更改它,可以使用以下方法保存文件:

:w ++ff=unix

或者,如果您喜欢:

:set ff=unix

然后正常保存文件。

因此,请查看所有血腥细节:help fileformat:help file-formats然后:help fileformats

2020-12-20