问题标签 [file-manipulation]

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.

0 投票
4 回答
227 浏览

python - 尝试使用 Python 脚本将字符串添加到文件中

我有一本西班牙小说,在一个纯文本文件中,我想制作一个 Python 脚本,将翻译放在困难单词后面的括号中。我有一个单词列表(带有翻译),我想在一个单独的文本文件中执行此操作,我已尝试正确格式化。我已经忘记了我所知道的关于 Python 的一切,因为它一开始就很少,所以我很挣扎。这是有人帮助我的脚本:

当我运行它时,我收到了以下错误消息:

小说很大,我做的字典大约有一万个键值对。

这是否意味着字典有问题?还是太大了?一直在研究这个很多,但我似乎无法理解它。任何意见,将不胜感激。

0 投票
4 回答
369 浏览

python - Python脚本将文本写入文件,但不添加它应该添加的文本

我很惭愧再次求助于求助,但我被困住了。

我有一本西班牙小说(纯文本),我有一个 Python 脚本,它应该使用另一个文本文件中的自定义词典将难词的翻译放在括号中。

经过大量的试验和错误,我设法让脚本运行,并将小说写入一个新的文本文件,就像它应该做的那样。

唯一的问题是,小说中的文字并没有做任何改动,也就是没有在文本中插入译文。字典是纯文本文件,格式如下:

等等。请注意,这些词并没有真正括在括号中。每个单词之间有一个空格,文件中的其他任何地方都没有空格。

这是有问题的代码:

建议将不胜感激。

编辑: MemoryError 现在已经解决了,我以为我已经修复的字典中有错误。非常感谢那些帮助我解决这个愚蠢问题的人!

0 投票
2 回答
273 浏览

perl - Perl 在不同情况下查找有效的行对

我有 HTTP 标头请求和以制表符分隔的形式回复数据,每个 GET/POST 并在不同的行中回复。该数据使得一个 TCP 流有多个 GET、POST 和 REPLY。我只需要从这些案例中选择第一个有效的 GET - REPLY 对。一个例子(简化)是:

所以,基本上我需要为每个 ID 获取一个请求-回复对并将它们写入一个新文件。

对于“1”,它只是一对,所以很容易。但也有两行都是 GET、POST 或 REPLY 的错误案例。因此,此类情况被忽略。

对于“2”,我会选择第一个 GET - REPLY 对。

对于“3”,我会选择第一个 GET 但第二个 REPLY,因为第一个中不存在 Content-Length(使 subsequest REPLY 成为更好的候选者)。

对于“4”,我会选择第一个 POST(或 GET),因为第一个标头不能是 REPLY。即使 POST 之后的内容长度缺失,我也不会在第二次 GET 之后选择 REPLY,因为 REPLY 在那之后。所以我会选择第一个回复。

因此,在选择了最佳请求和回复对之后,我需要将它们配对在一行中。例如,输出将是:

实际数据中还有很多其他标题,但这个示例几乎显示了我需要的内容。在 Perl 中如何做到这一点?我几乎一开始就被困住了,所以我一次只能读取一行文件。

*编辑:我添加了一个额外的列,给出了每个 ID 的 HTTP 标题行数。这可能有助于了解要检查多少后续行。另外,我修改了 ID '4',以便第一个标题行是回复。*

0 投票
1 回答
963 浏览

python - Python:如何从 .t​​xt 文件中打印 unicode 字符串

我正在使用 Python 3.2.3 和空闲来编写文本游戏。我正在使用 .txt 文件来存储稍后将由程序打开并在终端上绘制的地图方案(暂时空闲)。

.txt 文件中的内容是:

Π:门;□:窗;b:床;c:电脑;w: 衣柜

由于我是编程新手,因此我在执行此操作时遇到了难题。

这是我到目前为止为此编写的代码:

有两张地图,每一张都有一个标题,较小的一张是 map1(我展示的那个)。

如果我尝试运行程序,Python 会给出此错误消息:

我该怎么做才能将地图完全按照我在那里显示的方式打印到 IDLE 终端?

0 投票
3 回答
3739 浏览

linux - 输出列格式排序linux

基本上在我排序之后,我希望我的列用标签分隔。现在它被两个空格隔开。手册页没有任何与输出格式相关的内容(至少我没有注意到)。

如果不可能,我想我必须使用 awk 来排序和打印。有更好的选择吗?

编辑: 为了澄清这个问题,双空格的位置并不一致。我实际上有这样的数据:

<date>\t<user>\t<message>.

我按年、月、日和时间按日期排序,看起来像

Wed Jan 11 23:44:30 CST 2012

然后像原始文件一样输出排序数据

<date>\t<user>\t<message>.

编辑 2:似乎我对选项卡的测试是错误的。我正在将原始行从 bash 复制粘贴到我的 Windows 框中。这就是为什么它没有识别为选项卡而是显示空格的原因。我将整个文件下载到 Windows,现在我可以看到这些字段是制表符分隔的。

另外,我发现排序后的新文件中的字段分隔(\t \n、: ; 等)是相同的。这意味着,在原始文件中,如果我有制表符分隔字段,我的排序文件也将是制表符分隔的。

最后一件事,“正确”的答案并不完全是问题的正确解决方案。我不知道我是否可以评论我自己的线程并将其标记为正确。如果可以这样做,请告诉我。

感谢您的评论。非常感谢您的帮助!

0 投票
3 回答
152 浏览

c# - 独特的文件重命名问题

我现在正在开发一个应用程序,它从窗口读取数据并根据输入生成 XML 文件。

我的任务是在每次更新表单时创建一个新文件(用户按“提交”)。(到目前为止,一切都很好)

这里有一个问题:文件必须以突出的字段输入命名。(如果用户在文本框中键入“993388CX”,应用程序将重命名待处理文件 993388CX.xml)。

我了解如何在 C# 中实际重命名文件,但不了解如何根据表单的输入重命名它。是否存在任何会根据表单输入动态重命名文件的类/方法?

代码:

//从app UI上的用户输入读取info1并生成XML语句

我需要在 info1.Text 中的字符串之后重命名新文件

如果用户输入的是“John5”,文件需要重命名为 john5.xml

谢谢

0 投票
4 回答
1814 浏览

c# - System.IO.File.Move 不支持先前定义的字符串吗?

例如,这样的事情失败了:

程序崩溃并显示“不支持给定路径的格式”。

编辑:我在 Windows 窗体项目与控制台项目中这样做,这有什么不同吗?直觉上我不认为它应该,但你永远不知道......

0 投票
0 回答
119 浏览

shell - 将一组文本文件中的图像复制到子目录中

我有一个包含大约 100 个子文件夹的文件夹。在每个子文件夹中,有 4 个文本文件和 1 个或 2 个包含图像的文件夹以及与 4 个文本文件对应的 4 个当前空文件夹。在每个文本文件中,都有一个需要从图像文件夹移动到特定文件夹的图像列表。

这是一个插图:

在 1.txt 中,有一个文件列表需要从 /Textures/Asymmetrical/Asymmetrical/ 或 /Textures/Asymmetrical/Asymmetrical+Texture/ 进入 /Textures/Asymmetrical/1/ 等等。

但并非所有文件夹都采用这种精确格式——下面还有另一种类型:

这些文件/文件夹的目的应该从上面开始,除了这更容易使用,因为它只有 1 个图像文件夹。

现在我在shell中编写了以下代码:

现在这确实有效,但会产生很多错误,因为有些文件夹确实有 images 子文件夹,而另一些则没有,依此类推。但我完全可以忍受。更大的问题是程序会在一段时间后放弃,可能是在复制了大约 40-200 张图像之后。我有数以万计的图像要移动,所以我不会费心去复制这种大小的块。我收到如下错误:

所以我想我要求要么 1)修复我的代码,要么 2)这个问题的通用解决方案,可以在很少的监督下工作。

0 投票
2 回答
8380 浏览

r - Replace nth line in a text file

How do I go about in replacing the nth line of a text file in R?

0 投票
2 回答
526 浏览

python - 使用 Perl 在 Octave 中操作文件

我需要在例程中间从 Octave 中操作文件。目前我通过从 Octave 保存一个文件来结束这个例程

然后手动,乏味地编辑保存的文件,然后通过首先读取编辑的文件,在一个新的不同的 Octave 例程中恢复操作。从概念上讲,所需的文件操作与此 SO 发布中概述的操作相反,即保存的文件看起来像这样

必须被操纵到

其中字母实际上是数字,但为了清楚起见,我使用了字母。换行符总是在每行倒数第五个数字之前,即每行的最后一个 0 0 0 0 1 需要移到该行下方,并且所有行上的所有数字都用空格分隔。

我已经用 Perl 和 Python 标签标记了这个问题,因为Octave 中有 Perl 和 Python 函数,所以我假设我可以通过编写脚本文件来执行上述操作来轻松实现我想要的。如果我在这个假设中是正确的,任何人都可以给我 Perl/Python 脚本文件的开始/网络链接 - 我以前从未使用过吗?