【发布时间】:2015-06-01 20:05:54
【问题描述】:
编写一个名为file_split(filename, number_of_files) 的函数,它将一个输入文件拆分为多个输出文件。文件应尽可能均匀地分割。当文件长度能被要创建的文件数整除时(一个 10 行的文件,分成 2 个文件,每个输出文件应该有 5 行。当长度不能整除时,所有输出文件的长度不能有差异大于 1。例如,一个 10 行的文件,分成 3 行,输出文件的长度为 3、3 和 4。
我已经编写了我的代码,但我不知道如何处理大于 1 部分的差异,我需要帮助修改我的代码以包含该部分。 (如果不是偶数,我的代码会为最后一行创建一个新文件)
def get_line_counts(filename, number_of_files):
try:
my_file = open(filename, 'r')
except IOError:
print("File does not exist")
return
input = my_file.read().split('\n')
outputBase = 'lel'
total_lines = 0
with open('myfile.txt') as infp:
for line in infp:
if line.strip():
total_lines +=1
base_size = total_lines // number_of_files
at = 1
for lines in range(0, len(input), base_size):
outputData = input[lines:lines+base_size]
output = open(outputBase + str(at) + '.txt', 'w')
output.write('\n'.join(outputData))
output.close()
at += 1
【问题讨论】:
-
"写一个函数..."?我们是你的奴隶,你可以给我们发号施令吗?
-
@Stefan Pochmann 你读过下一段吗?
-
@Stefan Pochmann 这就是文本中的问题,而不是我的措辞,哈哈
-
那么您为什么不这样说或者以一些的方式将其标记为引用?它的写作方式,我觉得它的风格和礼仪很差,当然不能“笑”。