Ich habe eine CSV-Datei, die etwa wie folgt aussieht:Wie kann ich diese Zeilen aus einem csv löschen, wenn es ein bestimmtes Wort enthält?
"Estimated 10:10 AM
" \t "10:40 AM \t KL1973 \t
" \t "Amsterdam (AMS)
" \t "KLM \t B738 (PH-BXB) \t
"
"Scheduled
" \t "10:50 AM \t AY753 \t
" \t "Helsinki (HEL)
" \t "Finnair \t A321 (OH-LZL) \t
"
"Estimated 10:49 AM
" \t "10:50 AM \t W62282 \t
" \t "Brussels (CRL)
" \t "Wizz Air \t A321 (HA-LXS) \t
"
"Scheduled
" \t "10:50 AM \t OS713 \t
" \t "Vienna (VIE)
" \t "Austrian Airlines \t DH8D (OE-LGL) \t
"
"Scheduled
" \t "11:00 AM \t W62272 \t
" \t "Eindhoven (EIN)
" \t "Wizz Air \t A321 (HA-LXQ) \t
"
Ich frage mich, wie eine Linie zu löschen, wenn sie das Wort „Scheduled“ enthalten?
Ich habe versucht, so etwas zu verwenden, aber es funktioniert nicht (Python 2.7). Keine Fehlermeldung, es läuft, aber nichts zu tun:
import urllib2
import unicodecsv as csv
import os
import sys
import io
import time
import datetime
import pandas as pd
from bs4 import BeautifulSoup
import sys
import re
def to_2d(l,n):
return [l[i:i+n] for i in range(0, len(l), n)]
f = open('air.txt', 'r')
x = f.readlines()
filename=r'output.csv'
resultcsv=open(filename,"wb")
output=csv.writer(resultcsv, delimiter=';',quotechar = '"', quoting=csv.QUOTE_NONNUMERIC, encoding='latin-1')
maindatatable = to_2d(x, 4)
print maindatatable
output.writerows(maindatatable)
resultcsv.close()
open("output.csv", "r+") as f:
t = f.read() to_delete = '"Scheduled'
f.seek(0) for line in t.split('\n'):
if line != to_delete:
f.write(line + '\n') f.truncate()
Tut mir leid, wenn das wie eine wirklich einfache Frage scheint, aber ich bin neu bei Python und jede Hilfe in diesem Bereich wäre sehr dankbar, danke !!
Verwenden regex für pattern-Matching –