python實現一組典型資料格式轉換

2022-10-04 18:30:16 字數 1761 閱讀 5360

有一組源資料,第一行會是個日期資料,第二行標明字段,再接下來是兩行資料行。

1018 14:31:30.193

type succ fail

sour_sm 1308 1205

data_sm 2205 3301

1019 16:32:30.201

type succ fail

data_sm 3308 2206

data_sm 1765 1105

1020 18:00:00.203

type succ fail

sour_sm 7804 1105

data_sm 2976 1300

要轉換成資料

time               type    succ fail  total

1018 14:31:30.193  sour_sm 1308 1205  2513

1018 14:31:30.193  data_sm 2205 3301  5506

1019 16:32:30.201  data_sm 3308 2206  5514

1019 16:32:30.201  data_sm 1765 1105  2870

1020 18:00:00.203  sour_sm 7804 1105  8909

1020 18:00:00.203  data_sm 2976 1300  4276

這個時候可以使用python來處理,**如下:

# coding = utf-8

fd = open(r"output.txt", "w", encoding="utf-8")

fd.write("%s\t\t\t\t%s\t%s\t%s\t%s\n" % ("time", "type", "succ", "fail", "total"))

with open(r"data.txt", "r", encoding="utf-8") as fd1:

lines = fd1.readlines()

time1 = lines[0::4]

data1 = lines[2::4]

data2 = lines[3::4]

for (i, line) in enumerate(time1):

time = liwww.cppcns.comne.strip()

type_1 = data1[i].strip().split()[0]

succ_1 = data1[i].strip().split()[1]

fail_1 = data1[i].strip().split()

total_1 = str(int(succ_1) + int(fail_1))

type_2 = data2[i].strip().split()[0]程式設計客棧

succ_2 = data2[i].strip().split()[1]

fail_2 = data2[i].strip().split()[2]

total_2 = str( + int(fail_2))

fd.write("%s\t%s\t%s\t%s\t%s\n" % (time, type_1, succ_1, fail_1, total_1))

fd.write("%s\t%s\t%s\t%s\t%s\n" % (time, type_2, succ_2, fail_2, total_2))

fd.close()

生成檔案格式如下,基本上滿足了需求。

本文標題: python實現一組典型資料格式轉換

本文位址:

用Python對一組典型資料進行格式轉換

有一組源資料,第一行會是個日期資料,第二行標明字段,再接下來是兩行資料行。1018 14 31 30.193 type succ fail sour sm 1308 1205 data sm 2205 3301 1019 16 32 30.201 type succ fail data sm 330...

一組python用於驗證資料的函式

這是一組python用於驗證資料是否合法的函式,包括檢測型別是否為整數 浮點數 字串 字典 元組 陣列 bool型別等,還可以檢測是否為貨幣 是否為空 是否是合法的日期格式,是否是郵件位址 email 是否是中文字元,是否符合使用者賬號的規則,是否是合法的ip位址等等。usr bin env pyt...

對一組資料進行排序

如果有這種可能的話,三路快排是最好的選擇。是否大部分資料距離它的正確的位置很近?是否近乎有序?如果這樣,插入排序是很好的選擇。是否資料取值的範圍非常有限?比如對學生的成績排序。如果這樣,計數排序是很好的選擇 對排序有什麼額外的要求?是否需要穩定的排序?如果是的話,歸併排序是更好的選擇,快排就不行了。...