แยกไฟล์ข้อความขนาดใหญ่ตามค่าบันทึก


1

มีคำถามบางคำถามเหมือนกันในเว็บไซต์นี้ แต่ของฉันแตกต่างกันเล็กน้อย

ฉันมีไฟล์ข้อความ 30 GBและฉันต้องการแยกเป็นไฟล์ขนาดเล็กตามค่าบันทึกที่แตกต่างกัน

ตัวอย่างเช่น;

   NAME       DATE      AMOUNT  
    AA      02.03.2014  768,30
    AA      03.03.2014  234,15
    BB      12.01.2014  238,00
    BB      15.09.2014  567,00
    BB      06.12.2014  323,00
    CC      08.02.2015  456,00
    CC      09.02.2015  213,00

เป็น ---->

AA.TXT

   NAME       DATE      AMOUNT  
    AA      02.03.2014  768,30
    AA      03.03.2014  234,15

BB.TXT

   NAME      DATE        AMOUNT 
    BB       12.01.2014  238,00
    BB       15.09.2014  567,00
    BB       06.12.2014  323,00

CC.TXT

   NAME     DATE         AMOUNT
   CC      08.02.2015    456,00
   CC      09.02.2015    213,00

ที่นี่ฉันได้พบเบาะแสแต่ฉันแทบจะไม่รู้จัก Powershell การเขียนสคริปต์ดังนั้นฉันจึงไม่สามารถหาวิธีแบ่งไฟล์ตามค่า NAME

ในคำตอบที่ฉันอ้างถึงข้างต้นก็จะหาวงเล็บ[สิ่งที่ฉันหาคือค่าที่แตกต่างจากหนึ่งในคอลัมน์ NAME

และ;

ไฟล์ที่มีขนาดเล็กกว่าในรูปแบบ. txt จะทำงาน แต่สิ่งต่อไปนี้ได้รับการชื่นชม:

- หากจำนวนแถวคือ <1.000.000 ให้แตกไฟล์ออกเป็นไฟล์. xls (หรือ. xlsx)

เรายินดีรับการแก้ปัญหาในภาษาอื่น ๆ ด้วย

ขอบคุณ


โซลูชันงูหลามใช้งานได้จริงหรือ
user236012

คำตอบ:


2

งูหลาม:

cpath="C:/Path/to/File"
infile=cpath+"/data.txt"

with open(infile) as f:
for line in f:
         content = line.split()

         outfile = cpath + "/" + content[0] + ".txt"

         with open(outfile,'a') as f2: 
              f2.write(line)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.