คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 2
ตอบคำถาม
1. ใช้ slice หรือ in operator
2. ใช้ append() และ ทบทวนการใช้ลูป for
3. เพราะจำนวน element ใน list มีไม่ถึง 8 ตัว ลองนับดูบรรทัดที่มีคำว่า Time window: หรือเช็คด้วย len()
ตัวอย่าง file.txt
[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้
Col1 Col2 Col3 Col4 Col5 Col6 Col7 Col8 Col9
11 12 13 14 15 16 17 18 19
21 22 23 24 25 26 27 28 29
31 32 33 34 35 36 37 38 39
41 42 43 44 45 46 47 48 49
51 52 53 54 55 56 57 58 59
61 62 63 64 65 66 67 68 69
71 72 73 74 75 76 77 78 79
81 82 83 84 85 86 87 88 89
91 92 93 94 95 96 97 98 99
foot11 foot12 foot13 foot14 foot15 foot16 foot17 foot18 foot19
foot21 foot22 foot23 foot24 foot25 foot26 foot27 foot28 foot29
foot31 foot32 foot33 foot34 foot35 foot36 foot37 foot38 foot39
แนวทาง (ผมตั้งใจใช้ for เป็นตัวอย่างวิธีใช้งาน)
[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้
import os
THIS_FOLDER = os.path.dirname(os.path.abspath(__file__))
my_file = os.path.join(THIS_FOLDER, 'file.txt')
fo = open(my_file, "r")
lines = fo.readlines()[1:-3]
#print(*lines, sep='')
c1 = []
c2 = []
c3 = []
c4 = []
c5 = []
c6 = []
c7 = []
c8 = []
c9 = []
for line in lines:
d = line.split()
# in range
#print(d[1], d[3], d[5])
# out of range
#print(d[9])
# Count elements in list
#print(len(d))
c1.append(d[0])
c2.append(d[1])
c3.append(d[2])
c4.append(d[3])
c5.append(d[4])
c6.append(d[5])
c7.append(d[6])
c8.append(d[7])
c9.append(d[8])
print("\nColumn 1:")
for c in c1:
print(c)
print("\nColumn 2:")
for c in c2:
print(c)
print("\nColumn 3:")
for c in c3:
print(c)
print("\nColumn 4:")
for c in c4:
print(c)
print("\nColumn 5:")
for c in c5:
print(c)
print("\nColumn 6:")
for c in c6:
print(c)
print("\nColumn 7:")
for c in c7:
print(c)
print("\nColumn 8:")
for c in c8:
print(c)
print("\nColumn 9:")
for c in c9:
print(c)
# Writing list to file
# Do it yourself!!!
สวัสดีปีใหม่ครับ
1. ใช้ slice หรือ in operator
2. ใช้ append() และ ทบทวนการใช้ลูป for
3. เพราะจำนวน element ใน list มีไม่ถึง 8 ตัว ลองนับดูบรรทัดที่มีคำว่า Time window: หรือเช็คด้วย len()
ตัวอย่าง file.txt
[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้
Col1 Col2 Col3 Col4 Col5 Col6 Col7 Col8 Col9
11 12 13 14 15 16 17 18 19
21 22 23 24 25 26 27 28 29
31 32 33 34 35 36 37 38 39
41 42 43 44 45 46 47 48 49
51 52 53 54 55 56 57 58 59
61 62 63 64 65 66 67 68 69
71 72 73 74 75 76 77 78 79
81 82 83 84 85 86 87 88 89
91 92 93 94 95 96 97 98 99
foot11 foot12 foot13 foot14 foot15 foot16 foot17 foot18 foot19
foot21 foot22 foot23 foot24 foot25 foot26 foot27 foot28 foot29
foot31 foot32 foot33 foot34 foot35 foot36 foot37 foot38 foot39
แนวทาง (ผมตั้งใจใช้ for เป็นตัวอย่างวิธีใช้งาน)
[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้
import os
THIS_FOLDER = os.path.dirname(os.path.abspath(__file__))
my_file = os.path.join(THIS_FOLDER, 'file.txt')
fo = open(my_file, "r")
lines = fo.readlines()[1:-3]
#print(*lines, sep='')
c1 = []
c2 = []
c3 = []
c4 = []
c5 = []
c6 = []
c7 = []
c8 = []
c9 = []
for line in lines:
d = line.split()
# in range
#print(d[1], d[3], d[5])
# out of range
#print(d[9])
# Count elements in list
#print(len(d))
c1.append(d[0])
c2.append(d[1])
c3.append(d[2])
c4.append(d[3])
c5.append(d[4])
c6.append(d[5])
c7.append(d[6])
c8.append(d[7])
c9.append(d[8])
print("\nColumn 1:")
for c in c1:
print(c)
print("\nColumn 2:")
for c in c2:
print(c)
print("\nColumn 3:")
for c in c3:
print(c)
print("\nColumn 4:")
for c in c4:
print(c)
print("\nColumn 5:")
for c in c5:
print(c)
print("\nColumn 6:")
for c in c6:
print(c)
print("\nColumn 7:")
for c in c7:
print(c)
print("\nColumn 8:")
for c in c8:
print(c)
print("\nColumn 9:")
for c in c9:
print(c)
# Writing list to file
# Do it yourself!!!
สวัสดีปีใหม่ครับ
▼ กำลังโหลดข้อมูล... ▼
แสดงความคิดเห็น
คุณสามารถแสดงความคิดเห็นกับกระทู้นี้ได้ด้วยการเข้าสู่ระบบ
กระทู้ที่คุณอาจสนใจ
อ่านกระทู้อื่นที่พูดคุยเกี่ยวกับ
Python
การ ตัดข้อมูลทิ้งและการเขียน List ใส่ TXT
ตอนนี้ผมกำลังพบกับปัญหาอย่างหนึ่งที่ผมพยายามแก้มันแล้ว แต่ก็ยังแก้ไม่ได้สักทีครับ ผมหวังเป็นอย่างยิ่งว่าการตั้งกระทู้ในครั้งนี้จะทำสามารถคลายข้อสงสัยของผมได้
นี่เป็นหน้าตาข้อมูลที่ผมนำมาใช้นะครับ เป็นไฟล์ txt
ส่วนนี่เป็นหน้าตาโค๊ดที่ผมใช้รันครับ
และนี่ก็คือผลลัพธ์ที่ได้มา
คือ ผมต้องนำข้อมูลที่ได้จากไฟล์ txt มาตัดข้อมูลที่จะใช้ออกแล้วเก็บใส่ Array เอาไว้ครับ
ซึ่งข้อมูลนั้นได้แก่ Date , Time ,Source IP , Dest IP , Byte
ผมได้ใช้การ Split ข้อมูลเพื่อที่จะแยกมันออกมาเป็นส่วนๆ ตามที่เห็นในภาพ
แต่ว่า หัวของข้อมูลและรายละเอียดของข้อมูลไม่ตรงกันครับ แต่ว่ามันก็ไม่ได้สำคัญเท่าไหร่ เพราะสิ่งที่ผมจะใช้มาคำนวณมีเพียงแค่ data ของมันเท่านั้น ไม่ได้ใช้ หัว และ ท้ายของข้อมูล
คำถามของผมก็คือ
1. ผมจะตัด Row แถว แรก กับ 4 Row สุดท้ายออก จะต้องเขียนโค๊ดยังไงครับ
2. ผมต้องการ เก็บ list แต่ละ columns พวกนี้ลง txt แต่พอผมเขียน มันจะได้แบบนี้ ควรแก้ยังไงดีครับ
ซึ่งมีอยู่ครั้งหนึ่งที่ผมเขียนให้มันเก็บค่าลงได้ แต่มันดันต่อกันยาว ไม่ใช่เป็นแถว Column แบบ result ใน Python
3.ทำไมมันถึงเกิด List Index out of range ขึ้นได้ครับ ทั้งๆที่ผมไม่ได้ระบุ Range ให้มัน
ตอนแรกผมใช้ Panda ทำ เลยอทำได้ แต่ครั้งนี้อาจารย์ไม่อนุญาตให้ใช้ Panda ครับ เลยงงมาก
ตอนนี้ผมตื้อมากครับ 3-4 วันแล้วแต่ไม่คืบหน้าไปไหนเลย วนเวียนอยู่ที่เดิม จึงตัดสินใจที่จะมาตั้งกระทู้อีกครั้ง
ถ้าหากว่าพี่ๆมีคำแนะนำเกี่ยวกับเรื่องพวกนี้ก็สามารถแนะนำได้เลยนะครับ
ขอบคุณมากครับผม