python按内容分割txt文件_使用Python按行号将大文本文件拆分为小文本文件

我用一种更容易理解的方式来做这件事,并且使用更少的捷径,以便让您进一步了解这是如何工作的以及为什么这样做。前面的答案是有效的,但是如果您不熟悉某些内置函数,您将无法理解该函数在做什么。

因为您没有发布任何代码,所以我决定这样做,因为您可能不熟悉基本的python语法以外的其他内容,因为您对问题的措辞使您看起来好像没有尝试,也不知道如何处理问题

下面是在basic python中执行此操作的步骤:

首先,你应该把你的文件读到一个列表中,以便保存:my_file = 'really_big_file.txt'

hold_lines = []

with open(my_file,'r') as text_file:

for row in text_file:

hold_lines.append(row)

其次,您需要设置一种按名称创建新文件的方法!我建议一个循环和几个计数器:outer_count = 1

line_count = 0

sorting = True

while sorting:

count = 0

increment = (outer_count-1) * 300

left = len(hold_lines) - increment

file_name = "small_file_" + str(outer_count * 300) + ".txt"

第三,在该循环中,需要一些嵌套循环,这些循环将正确的行保存到数组中:hold_new_lines = []

if left < 300:

while count < left:

hold_new_lines.append(hold_lines[line_count])

count += 1

line_count += 1

sorting = False

else:

while count < 300:

hold_new_lines.append(hold_lines[line_count])

count += 1

line_count += 1

最后,同样在第一个循环中,您需要写入新文件并添加上一个计数器增量,这样您的循环将再次遍历并写入新文件outer_count += 1

with open(file_name,'w') as next_file:

for row in hold_new_lines:

next_file.write(row)

注意:如果行数不能被300整除,则最后一个文件的名称将与最后一个文件行不对应。

理解这些循环的工作原理很重要。您设置了它,以便在下一个循环中,您编写的文件的名称更改,因为您的名称依赖于更改的变量。这是一个非常有用的脚本工具,用于文件访问、打开、编写、组织等

如果您无法跟踪what循环中的内容,那么下面是整个函数:my_file = 'really_big_file.txt'

sorting = True

hold_lines = []

with open(my_file,'r') as text_file:

for row in text_file:

hold_lines.append(row)

outer_count = 1

line_count = 0

while sorting:

count = 0

increment = (outer_count-1) * 300

left = len(hold_lines) - increment

file_name = "small_file_" + str(outer_count * 300) + ".txt"

hold_new_lines = []

if left < 300:

while count < left:

hold_new_lines.append(hold_lines[line_count])

count += 1

line_count += 1

sorting = False

else:

while count < 300:

hold_new_lines.append(hold_lines[line_count])

count += 1

line_count += 1

outer_count += 1

with open(file_name,'w') as next_file:

for row in hold_new_lines:

next_file.write(row)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值