在Python中,逐行写入数据到文件可以通过使用`open`函数和`write`方法来实现。以下是一个简单的例子,展示了如何逐行写入数字到文本文件中:
初始化一个计数器i = 1使用追加模式('a')打开文件with open('numbers.txt', 'a') as f:使用格式化字符串将数字转换为字符串,并添加换行符while i <= 10:f.write('{}\n'.format(i))i += 1文件会在with语句块结束后自动关闭
这段代码会打开一个名为`numbers.txt`的文件(如果不存在则创建),并以追加模式写入数字1到10,每行一个数字。每次运行这段代码时,新的数字会被追加到文件的末尾,而不会清空之前的内容。
如果你需要处理更复杂的数据结构,比如Pandas数据框,并希望将其内容逐行写入多个文件,你可以使用以下方法:
import pandas as pd假设df是一个Pandas数据框partitioncount = 5trainingDataFile = 'sometrainingDatFileWithHugeTextDataInEachColumn.tsv'df = pd.read_table(trainingDataFile, sep='\t', header=None, encoding='utf-8')准备输出文件并打开它们以进行追加outputfiles = {}filename = 'C:\\Input_Partition'for i in range(partitioncount):outputfiles[i] = open(f'{filename}_{i}.tsv', 'a')遍历数据框并写入到不同的文件for index, row in df.iterrows():使用哈希函数对行数据进行处理partition = hash(row) % partitioncount将行数据转换为制表符分隔的字符串并写入到相应的文件outputfiles[partition].write('\t'.join([str(num) for num in row]))关闭所有打开的文件for file in outputfiles.values():file.close()
这段代码将Pandas数据框的每一行根据第12列(索引为11)的数据进行分区,并将每个分区的内容追加到不同的`.tsv`文件中。
请注意,使用`with`语句可以确保文件在使用完毕后自动关闭,即使在发生异常的情况下也是如此。这是一种很好的实践,可以避免资源泄露

