问题标签 [trailing-newline]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 为什么 pandas df 将 pd.read_csv() 中 tsv 的强制尾随换行符显示为 NaN?
我的编程教授和互联网说我必须始终将一个空行(=尾随换行符)附加到所有输出文本文件中。
为什么
my_df = pd.read_csv('my.tsv', delimiter='\t', skip_blank_lines=True)
仍然将其读入我的熊猫数据框中并用值\n
填充它吗?NaN
到目前为止,我已经使用了df_no_nan = df.dropna(how="any", inplace=False)
.
我错过了什么?
有更好的解决方案吗?
这里是WeTransfer
文件的链接:
https://wetransfer.com/downloads/d34deac70e33a0a6351b8e4d6b4e3b8720210602143836/74fa00
powershell - Powershell:stdout 和 stderr 用于分隔文件,无需换行
我正在尝试将命令的 stdout 和 stderr 输出存储到两个单独的文件中。我这样做是这样的:
where$_cmd
是任意字符串命令。
这可行,但输出文件在输出后附加了换行符。我想修改它以消除换行符。我知道您可以使用cmd | Out-File ... -NoNewline
or [System.IO.File]::WriteAllText(..., [System.Text.Encoding]::ASCII)
,但我不确定如何使用 stderr 输出来完成此操作。
编辑:我已经意识到问题不是特别是尾随的新行(尽管我仍然想删除它),而是我需要输出文件是 UTF-8 编码的事实。尾随的新行显然不是有效的 UTF-8 字符,这让我很伤心。也许有一种方法可以捕获 stderr 和 stdout 以分隔变量,然后使用Out-File -Encoding utf8
?
c - 它适用于gets,但不适用于fgets?
当我使用 fgets 输入时,它不起作用,但如果我使用gets,它会起作用。在这里,我正在比较字符串的元素并显示相似元素的数量。例如输入a:1010101 b:9898101然后它给出4作为输出,但是当我使用gets时它给出3。
c# - 将类结构序列化为 XML 似乎添加了一个 NewLine 字符
下面的代码将 XML 序列化为一个字符串,然后将其写入一个 XML 文件(是的,在 UTF8 和命名空间的删除方面发生了很多事情):
问题是,对 XML 的序列化似乎引入了 CR/LF (NewLine):
在 XML 文件中更容易看到:
一种解决方法是去掉“最后一个”字符:
但更好的是理解根本原因并在没有解决方法的情况下解决 - 知道为什么将这个 NewLine 字符附加到 XML 字符串吗?
** 编辑 **
我能够尝试加载到消费者应用程序中(在此尝试之前,我使用 API 来导入 XML),并且我收到了一条更有说服力的消息:
您正在加载的文件是二进制文件,这里无法显示内容。
所以我怀疑一个不可打印的字符以某种方式嵌入到文件/XML中。当我在 Notepad++ 中打开文件时,我看到以下内容(UFF-8-Byte Order Mark)——至少我还有一些事情要做:
powershell - 如何使“Tee-Object”不在 PowerShell 中添加尾随换行符?
Tee-Object
没有-NoNewline
像许多其他输出到文件 cmdlet 那样的开关(例如Out-File
, Set-Content
)。在幕后,Tee-Object
用于Out-File
写入文件,默认情况下添加尾随换行符。
由于我(当前)无法通过-NoNewline
switch through Tee-Object
,是否有另一种方法可以强制底层Out-File
不会添加尾随换行符?看看 的实现Out-File
,现在可能有办法,但也许有人知道一些技巧/黑客来实现它?
一些限制:
- 我想
Tee-Object
在管道中使用(或替代解决方案) - 我不想对由
Tee-Object
(或替代解决方案)生成的文件进行后处理,例如再次打开它们并删除(最后一个)换行符。
复制代码:
在 Windows 上,生成的文件file
将包含 6 个字节,如以下 hexdump 所示:
不幸的是,其中包含 Windows 中的附加字节0D 0A
aka`r`n
或 CR&LF。
fortran - 如何在 Fortran 中从读写中删除默认换行符?
我正在使用 Fortran 90,我试图在没有换行的情况下获得以下内容
有了这个,我总是使用回车键来获取标准输入。像这样 现在,我想要这个而不按 Enter 键,就像 C++ 一样。我该怎么做?
if-statement - 我无法让 Emacs 停止询问我是否要在文件末尾添加换行符
Emacs 不断地问我
我很困惑为什么我不能阻止 Emacs 进行这个查询。我都设置了
到nil
钩子上tex-mode
。
我已经验证它的价值确实是nil
当我在我的文件中工作时。但尽管如此,Emacs 仍在继续进行调查。
我查看了basic-save-buffer
. 代码的相关部分是:
似乎 Emacs 永远不应该达到 .y-or-n-p
因为它显示为and
测试的第二部分,第一部分的计算结果为nil
.
这里发生了什么?
我的 Emacs 是 GNU 27.2。
我玩了一点重写这段代码。举个例子,
表现如我所料。
我也尝试过类似的东西:
并且消息报告说,require-final-newline
但nil
获得消息的唯一方法就是让它成为t
。
这是怎么回事?
更新
我可以进入并自定义变量。当我这样做并将其设置为 时Don't add newlines
,烦人的问题就消失了。但是,我对此并不满意。无论我处于何种模式,这似乎都在全局设置这个值。这不是我想要的。它仅适用于特定文件,并且tex-mode
我希望在其中应用它。
进一步更新:
实际上,@phils 的问题对我开始调试这里发生的事情非常有用。
我想我已经找到了问题所在。我仍然对如何解决它感兴趣。
我正在使用 a.dir-locals.el
为我正在处理的本地文件设置许多参数。如果我删除.dir-locals.el
文件并通过挂钩进行设置(就像我以前认为的那样),一切都会正常运行。
但是,如果我使用.dir-locals.el
文件集参数,那么事情就会停止正常工作。在.dir-locals.el
文件中,我有以下行:
这似乎是问题所在。正在发生的事情是,它没有被设置为,而是require-final-newline
被nil
设置为(nil)
.
我可以坚持使用钩子来完成我想要的。但是,现在我很好奇。我是否得到.dir-locals.el
错误的语法。这是我的完整.dir-locals.el
文件