Я создаю приложение, и часть его загружает CSV-файл, который присутствует в GCP Storage.
Я использую эту функцию для получения csv, обратите внимание, что она загружается в виде строки.
def get_my_csv(run, library):
storage_client = storage.Client()
bucket = storage_client.get_bucket(BUCKET_NAME)
blobs = bucket.list_blobs(prefix="{}/{}".format(run, library))
for blob in blobs:
return blob.download_as_string().decode("utf-8")
После получения CSV я анализирую его в pandas фрейме данных следующим образом:
csv_to_use = get_my_csv(run, library)
reader = csv.DictReader(csv_to_use.splitlines())
rows = [r for r in reader]
df = pd.DataFrame(rows)
Теперь у меня проблема в том, что люди, отвечающие за загрузку этого CSV-файла, иногда путаются, и я получаю CSV, который выглядит следующим образом:
Analysis pipeline:,Class II - DPB Full Length,,,,
Local ID,Sample ID,For Code ,For Code Seq,Rev Code Name,Rev Code Seq
4,2949,004F,GGTAGTGTGTATCAGTACATG,004R,GGTAGTGTGTATCAGTACATG
5,1596,005F,GGTAGACACGCATGACACACT,005R,GGTAGACACGCATGACACACT
13,3319,013F,GGTAGACACTGACGTCGCGAC,013R,GGTAGACACTGACGTCGCGAC
Как вы можете заметить есть строка перед фактическим заголовочным файлом. Как я могу справиться с этим? Также я никогда не уверен, что они на самом деле могут поместить в заголовки. Есть ли способ сделать мой код достаточно умным, чтобы справиться с этим?
Если не достаточно умен, то какие логики c можно использовать, чтобы отбросить эту строку: Analysis pipeline:,Class II - DPB Full Length,,,,
и сделать Local ID,Sample ID,For Code ,For Code Seq,Rev Code Name,Rev Code Seq
моим заголовком?
Обновление
В основном, For Code ,For Code Seq,Rev Code Name,Rev Code Seq
всегда должно присутствовать в заголовке. Как я могу пропустить, пока не найду это, сделать этот заголовок и разобрать остальное?