<p>读取整个csv文件并将内容存储在一个列表中。然后在临时列表中存储类似的csv数据。存储后,从列表中提取70%的数据并将其写入文件,然后将剩余的数据写入另一个文件。在</p>
<pre><code>csv_data = []
with open ('file.csv') as file:
csv_data.append(file.read())
csv_data = (''.join(csv_data)).split("\n")
header = csv_data[0]
csv_data = csv_data[1:]
temp_list = []
add_header = True
for i in csv_data:
if len(temp_list) == 0:
temp_list.append(i)
elif i.split(',')[0] == temp_list[0].split(',')[0]:
temp_list.append(i)
else:
file_length = len(temp_list)
line_count = int((0.7*file_length)+1)
if line_count == 1:
with open("file1.csv","a+") as file1:
if add_header:
add_header = False
file1.write(header+'\n')
file1.write(temp_list[0]+'\n')
else:
seventy_perc_lines = temp_list[:line_count]
thirty_perc_lines = temp_list[line_count:]
if add_header:
seventy_perc_lines.insert(0,header)
thirty_perc_lines.insert(0,header)
add_header = False
with open("file1.csv","a+") as file1:
for j in range(len(seventy_perc_lines)):
file1.write(seventy_perc_lines[j]+'\n')
if len(thirty_perc_lines) != 0:
with open("file2.csv","a+") as file2:
for j in range(len(thirty_perc_lines)):
file2.write(thirty_perc_lines[j]+'\n')
temp_list = []
temp_list.append(i)
</code></pre>
<p>文件1.csv</p>
<p><a href="https://i.stack.imgur.com/ARlr4.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/ARlr4.png" alt="first file"/></a></p>
<p>文件2.csv</p>
<p><a href="https://i.stack.imgur.com/i97PO.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/i97PO.png" alt="second file"/></a></p>
<blockquote>
<p>Note: If there are only 3 lines, this code will add all the 3 lines in file1 and adds nothing to file2. You need to edit this code if you wish to change this behaviour.</p>
</blockquote>