在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 = 5
trainingDataFile = '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`语句可以确保文件在使用完毕后自动关闭,即使在发生异常的情况下也是如此。这是一种很好的实践,可以避免资源泄露