问题标签 [write]

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 投票
1 回答
88 浏览

c - 由于文件描述错误,C 语言中的写入函数失败

这是我的第一个 StackOverflow 问题,所以请对我温柔一点。基本上,我正在编写一个非常简单的 C 程序来编写然后将可变长度记录读取到文件中,而不使用这些练习中常用的 FILE* 结构。相反,我仅限于使用文件描述符及其读写命令。现在,在我因敢于询问家庭作业而受到抨击之前,让我先说我已经为此烦恼了好几天,而我的老师几乎没有提供任何帮助。我已经广泛地解决了这个问题,所以这是我最后的手段。缓冲区正确保存了信息,因为我已将其内容打印到屏幕上以确保,并且我已经以读写模式打开了文件,所以我不确定为什么会收到“错误的文件描述符” 当我在写调用后检查文件描述符状态时。我也尝试过以纯写模式打开文件,但这并没有成功。我可以看到正在创建文件,但其中没有写入任何内容。有人可以指出我正确的方向吗?提前致谢...

代码片段如下。粗体字是我似乎遇到问题的地方:

0 投票
0 回答
130 浏览

python - 如何在编写时读取excel文件(Python)?

我正在使用 Python 从网站上抓取姓名和电话号码。我用熊猫写一个excel文件。

一切正常,但我想弄清楚如何在写入文件时读取文件,从 1000 页完成写入联系人需要数小时,并且该文件仅在程序完成抓取指定的所有页面后才会出现在我的文件夹中。

我的代码如下所示:

0 投票
2 回答
83 浏览

vba - 为什么我在 VBA 上为现有文件获得“找不到文件”?

编辑1:我很尴尬......好吧,在我更正路径后它工作得很好,谢谢!继续……实际上,我有一个有符号整数数组,应该作为 little-endian Hex 有符号 2 的补码放在文件中。我知道如果我在文件上放“FF”,结果是 46 46,如果我放“F0”,结果是 46 30。这不是我想要的。那么,我应该一点一点地做到这一点还是有更好的方法?我在这里看到了一点一点的解决方案。我应该在一个新问题上问这个吗?


我想创建一个HEX文件并使用下面的代码在其中写入字符串数组的内容,但是尽管我在文件夹中看到了该文件并且甚至可以在十六进制编辑器上打开它。有人有什么想法吗?PS:有没有更好的方法来做到这一点?

0 投票
1 回答
40 浏览

arrays - 在 VBA 中将 Longs 数组写入 HEX 文件的最佳方法是什么?

我有一个 Longs 数组(在 10k 或可能 100k 长的范围内),我必须将它们作为 8 位 little-endians 放入 HEX 文件 (.wav) 中。做这个的最好方式是什么?

我使用了一个简单的 PUT,但它并没有按计划进行。我尝试了一些应该产生的测试值

德 A8 CC 16 00 00 1E 5B

而我得到了

DE A8 FF FF CC 16 00 00 00 00 00 00 1E 5B 00 00

我使用的代码如下。你知道发生了什么以及如何解决这个问题吗?在我尝试的每个值中,记录之间总是有一个额外的 00 00 或 FF FF 。

0 投票
1 回答
339 浏览

arrays - Python 3.73 插入到 bytearray =“对象不能重新调整大小”

我正在使用来自文件数据的字节数组。我将其打开'r+b',因此可以更改为二进制文件。

Python 3.7 文档中,它解释了 RegExfinditer()可以使用m.start()m.end()来识别匹配的开始和结束。

在问题Insert bytearray into bytearray Python中,答案说可以通过使用切片对 bytearray 进行插入。但是当尝试这样做时,会出现以下错误:BufferError: Existing exports of data: object cannot be re-sized.

这是一个例子:

在文件中,匹配项是0 n并且我正在尝试将其替换0123456789 n为插入 9 个字节。使用此代码可以成功更改文件,只是不会增加大小。我究竟做错了什么?这是显示所有非增加文件大小操作的输出,但在插入数字时失败:

0 投票
2 回答
242 浏览

file - Lisp - 使用低内存占用写入文件

我有大型哈希表,我将其写入磁盘作为偶尔的备份。我发现当我映射哈希表并写入文件时,与哈希的大小相比,RAM 的使用量猛增。

我在带有 slime 和 sbcl 2.0.3.176 的 emacs 上运行 lisp。系统是戴尔服务器上的 Ubuntu 19.10。

数据是多层次的哈希表。它的基本结构是:

customer-ht - 称为 customer 的结构哈希表,以整数列表为键,如 (1 2)、(1 3)

var2 哈希表是简单的键/值,其中键是整数 1、2 等,值始终为 'T

var3 哈希表的键是整数,其值是另一个哈希表,其中键是整数列表 (1 2 3) (1 5 7),值始终为 'T

因此,客户 (1 2) 有

  • var1 = 5,

  • var2 = 键 3 的哈希表,值 'T

  • var3 = 键 9 的哈希表,值 = 键 (5 6 7) 的哈希表,值 'T

我正在使用它来映射和写入文件:

结构中有更多的变量,比如这些,都是使用相同的 maphash/write 代码编写的。因此,每个客户结构都非常大。

当我运行它时,我的 RAM 会爆炸。我在 RAM 中的所有数据都在 20GB 左右。当我运行它时,它达到 40GB+。我开始认为 maphashes 在运行时会从结构中复制数据。如果我对上面的 maphash 部分运行类似的写入函数,该函数在没有结构的哈希上使用 k1 和 k2(2 个嵌套映射),则不会发生内存增加。

有没有一种方法可以在不使用任何额外 RAM(或至少很少)的 LISP 中写入文件?我会降低性能以节省我的 RAM。

附加信息:我在运行时运行了 dstat,发现写入磁盘不是连续的。它大约每 30 秒写入一个大块 (20MB-120MB),每 5 秒左右写入 12K 小块。此外,RAM 使用量在函数完成写入之前达到顶峰。那么,数据是否在等待写入磁盘时存储在某处?还是只是分配一些内存?运行 (gc :full 'T) afterword 恢复所有额外的 RAM。

0 投票
1 回答
109 浏览

fortran - 为什么fortran不会读取一行并写入文件?

我正在尝试读取一个文件,将每一行放入一个名为 row 的变量中,然后从该行中获取某些位置的值并将其放入另一个变量中。然后应该写入文件。你是怎样做的?

0 投票
3 回答
155 浏览

python - 如何从 .t​​xt 文件中读取某些字符并将它们写入 Python 中的 .csv 文件?

所以我目前正在尝试使用 Python 从 .txt 文件创建一个整洁的 .csv 文件。第一阶段是将一些 8 位数字放入一个称为“数字”的列中。我已经创建了标题,只需将每行中的每个数字放入列中。我想知道的是,如何告诉 Python 读取 .txt 文件中每行的前八个字符(对应于我要查找的数字),然后将它们写入 .csv 文件?这可能很简单,但我只是 Python 新手!

到目前为止,我有一些看起来像这样的东西:

0 投票
2 回答
1771 浏览

python - 检查 pyspark 数据框是否为空导致内存问题

我有一张大约有 10 亿条记录的表。我对其进行查询以基本上找到重复项。如果查询结果为0行,则没有重复,否则有。如果有重复,我想将该表名写入文本文件。所以我正在做的是

df.count()线时,我收到一个错误,例如java.io.IOException: No space left on device. 是不是因为count()效率低下。当我尝试使用时,我也会遇到同样的错误

在我的查询中,我认为(希望)添加 LIMIT 1 会有所帮助,因此它不必经过数百行,只需检查它是否为空。如果我取出计数部分,它工作正常。

我已经看到了一些重写 count 语句的方法(我已经完成了How to check if spark dataframe is empty?),但到目前为止我还没有运气。

0 投票
0 回答
38 浏览

file - Lisp - 使用低内存占用将哈希写入文件

我有大型哈希表,我将其写入磁盘作为偶尔的备份。我发现当我映射哈希表并写入文件时,与哈希的大小相比,RAM 的使用量猛增。

我在带有 slime 和 sbcl 2.0.3.176 的 emacs 上运行 lisp。系统是戴尔服务器上的 Ubuntu 19.10。

数据是多层次的哈希表。它的基本结构是:

customer-ht - 称为 customer 的结构哈希表,以整数列表为键,如 (1 2)、(1 3)

var2 哈希表是简单的键/值,其中键是整数 1、2 等,值始终为 'T

var3 哈希表的键是整数,其值是另一个哈希表,其中键是整数列表 (1 2 3) (1 5 7),值始终为 'T

因此,客户 (1 2) 有

  • var1 = 5,

  • var2 = 键 3 的哈希表,值 'T

  • var3 = 键 9 的哈希表,值 = 键 (5 6 7) 的哈希表,值 'T

我正在使用它来映射和写入文件:

结构中有更多的变量,就像这些,都是使用相同的 maphash/write 代码编写的。因此,每个客户结构都非常大。

当我运行它时,我的 RAM 会爆炸。我在 RAM 中的所有数据都在 20GB 左右。当我运行它时,它达到 40GB+。我开始认为 maphashes 在运行时会从结构中复制数据。如果我对上面的 maphash 部分运行类似的写入函数,该函数在没有结构的哈希上使用 k1 和 k2(2 个嵌套映射),则不会发生内存增加。

有没有一种方法可以在不使用任何额外 RAM(或至少很少)的 LISP 中写入文件?我会降低性能以节省我的 RAM。