我會看一些示例代碼後,但這裏的邏輯:
- 創建一個字符串來保存新的數據(myNewData)
- 打開文件
- 逐行讀取文件中的行
- SP用冒號點燃線
- 確定在該行的第一個字(拆分的第一部分)
- 如果第一字不是「名稱:」和不過敏,然後添加一個逗號和值(從4分割的第二部分,以及空白的修剪)。將此附加到myNewData中。
- 如果第一個字是過敏,然後丟棄,並開始下一個循環
- 如果第一個字是「姓名:」,然後添加一個換行符(「\ n」)和值。
- 當進程完成時,將myNewData寫入新文件。
如下代碼示例:
#! /usr/bin/env python
def decider(line):
try:
first_part, second_part = lines.split(':')
if first_part not in ('Name', 'Allergies'):
return ',' + second_part.strip()
elif first_part == 'Name':
return '\n' + second_part.strip()
else:
return ''
except:
return ''
with open('text.txt', 'r') as f:
myNewData = 'Name,ID,Company,Age,Job'
for lines in f.readlines():
myNewData += decider(lines)
# print(myNewData)
with open('output.csv', 'w') as fo:
fo.write(myNewData)
,你有一個不錯的,新的CSV。
的輸出如下:
姓名,ID,公司,年齡,工作
李四,123456,J.Crew的,25,分析師
李四,654321,香蕉共和國,32,經理
請編輯您的問題,並從文件中包含實際樣本數據(我們不需要整件事情,您可以更改數據以保護無辜者)。 – martineau
行中沒有逗號?如果不是,那麼它不是CSV。你能添加實際文件的前幾行到你的問題嗎? –
我附上了csv文件的樣本圖片。 –