在写入文本文件时添加分隔符

Posted

技术标签:

【中文标题】在写入文本文件时添加分隔符【英文标题】:Add delimiters while writing into a text file 【发布时间】:2021-05-14 12:53:03 【问题描述】:

我正在将一个数组写入文本文件,稍后我用它来读取 excel 以进行绘图。 数据文件以这样的方式拆分,在 1000000 步(大约)之后,文件关闭并开始写入另一个文件。

但是,我的文本文件将数据写入为一大块没有任何分隔符的值。 请参考下面的代码,让我知道我哪里出错了。

counter = 1
for i in range(0, len(abc_value), 1000000):
    with open(f"abccounter.txt", "w") as file:
        for val in abc_value[i:i + 1000000]:
            file.write(str(val))
        file.close()
        counter += 1

谢谢!

【问题讨论】:

使用docs.python.org/3/library/csv.html#csv.writer或使用writeline()而不是write。 当我使用 writline() 时,我得到错误 "_io.TextIOWrapper' object has no attribute 'writeline" 我为 csv writer 添加了示例。 当你从来没有要求它写任何分隔符时,为什么你期望它写任何分隔符? How to debug small programs. | What is a debugger and how can it help me diagnose problems? 橡皮鸭调试这一点尤为重要。 嗯,你有没有尝试过类似file.write(str(val)+',') 【参考方案1】:

这个想法是正确的,但是您正在读取数组的值并且它们没有逗号。将值传递给字符串时必须添加逗号。 一个简单的方法是:

counter = 1
for i in range(0, len(abc_value), 1000000):
    with open(f"hola.txt", "w") as file:
        file.write(str(abc_value[i]))
        for val in abc_value[i+1:i + 1000000]:
            file.write(", " + str(val))
        file.close()
        counter += 1

【讨论】:

谢谢!这有帮助!【参考方案2】:

请参阅下面的示例以了解如何使用csv writer。

import csv
with open('abc.txt', 'w') as csv_file:
    wrtr = csv.writer(csv_file)
    for val in range(10):
        wrtr.writerow(str(val))
                                   

【讨论】:

感谢 csv 编写器教程。很有帮助。

以上是关于在写入文本文件时添加分隔符的主要内容,如果未能解决你的问题,请参考以下文章

CSV 写入需要唯一分隔符的文本字符串

如何剥离两个分隔符之间的文本,包括空行? [复制]

StreamWriter 在写入文本文件中途停止写入

将胶水pyspark错误写入文本文件

Hive load外部文件时如何区别分隔符与文本内容

Python:在 txt 文件中写入附加文本