3 回答

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超4個(gè)贊
如果每個(gè)旅館都在文件中聲明了每個(gè)字段(即,即使所有旅館都有相同數(shù)量的行,即使其中一些行為空),也可以嘗試使用簡(jiǎn)單的正則表達(dá)式來(lái)提取用引號(hào)引起來(lái)的每個(gè)值( “ xxx”),然后按數(shù)字將其分組(例如,將每5個(gè)字段分組為一行,然后添加一個(gè)換行符)。
一個(gè)有效的簡(jiǎn)單正則表達(dá)式將是["'][^"']*["'](編輯:這是因?yàn)槲铱吹侥承┪募碢hone)使用單引號(hào),其余使用引號(hào))。
要進(jìn)行搜索,請(qǐng)使用findall:
compPattern = re.compile(pattern)
results = compPattern.findall(compPattern)

TA貢獻(xiàn)1891條經(jīng)驗(yàn) 獲得超3個(gè)贊
如果這是您必須常規(guī)執(zhí)行的操作,并且希望使該過(guò)程完全自動(dòng)化,我認(rèn)為最簡(jiǎn)單的方法就是使用Python解析文件,然后使用csv Python模塊寫(xiě)入csv 。
您的代碼可能看起來(lái)像這樣:
with open("datafile.txt") as f:
hotel_data = []
for line in f:
# Let's make sure the line not empty
if line:
if "new hotelData();" in line:
if hotel_data:
write_to_csv(hotel_data)
hotel_data = []
else:
# Data, still has ending quote and semi colon
data = line.split("= ")[1]
# Remove ending quote and semi colon
data = data[:-2]
hotel_data.append(data)
def write_to_csv(hotel_data):
with open('hotels.csv', 'wb') as csvfile:
spamwriter = csv.writer(csvfile, delimiter=',',
quotechar='""', quoting=csv.QUOTE_MINIMAL)
spamwriter.writerow(hotel_data)
請(qǐng)注意,我尚未測(cè)試此代碼,它僅是為了幫助您并為您指明正確的方向,它不是完整的解決方案。
添加回答
舉報(bào)