python-3.x - 从python中的文件开头删除不固定数量的行
问题描述
我有一个像小例子一样的文本文件:
小例子:
ScannerID,1609P0139
StagePosition,1
BindingDensity,0.19
CodeClass,Name,Accession,Count
Endogenous,CCNO,NM_021147.4,196
Endogenous,MYC,NM_002467.3,962
Endogenous,CD79A,NM_001783.3,390
Endogenous,FSTL3,NM_005860.2,67
我想删除第一行直到这一行(标题行):
CodeClass,Name,Accession,Count
在此示例中,标题行之前有 3 行,但每次都可能不同。这是预期的输出:
CodeClass,Name,Accession,Count
Endogenous,CCNO,NM_021147.4,196
Endogenous,MYC,NM_002467.3,962
Endogenous,CD79A,NM_001783.3,390
Endogenous,FSTL3,NM_005860.2,67
我为此编写了以下代码:
with open("infile.csv" , "r") as inf,
for line in inf:
if line.startswith("CodeClass"):
with open('fileName.csv', 'w') as f:
for line in s:
f.write(line)
但它不会返回我正在寻找的东西。你知道怎么解决吗?
解决方案
这是现在的数据infile.csv
ScannerID,1609P0139
StagePosition,1
BindingDensity,0.19
CodeClass,Name,Accession,Count
Endogenous,CCNO,NM_021147.4,196
Endogenous,MYC,NM_002467.3,962
Endogenous,CD79A,NM_001783.3,390
Endogenous,FSTL3,NM_005860.2,67
试试这个代码,
import csv
status = False
datas = []
with open('infile.csv') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=',')
for row in csv_reader:
if row[0] == 'CodeClass':
status = True
if status:
datas.append(row)
with open('fileName.csv', 'w') as file:
employee_writer = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
for data in datas:
employee_writer.writerow(data)
之后,您将收到fileName.csv
以下值。
CodeClass,Name,Accession,Count
Endogenous,CCNO,NM_021147.4,196
Endogenous,MYC,NM_002467.3,962
Endogenous,CD79A,NM_001783.3,390
Endogenous,FSTL3,NM_005860.2,67
推荐阅读
- google-app-engine - 项目恢复后部署到 GAE 失败
- tensorflow - tf.train.import_meta_graph 的 TensorFlow 问题 - RuntimeError:会话图为空。在调用 run() 之前向图中添加操作
- google-cloud-platform - 代码 403:“请求缺少有效的 API 密钥。” PERMISSION_DENIED 服务帐户密钥 Google Cloud 语音到 python 中的文本 api"
- angular - 未使用的表达式,期望赋值或函数调用 Promise 函数中的 Angular lint 错误
- javascript - 从 Firebase Auth 用户更新提供者信息(云函数)
- json - 如何在 Go 中解析 Firestore get() 快照 JSON 内容?
- c# - 身份不起作用,无法访问身份数据
- javascript - Tampermonkey 脚本未在 Safari 中运行
- maven - 找不到 com.google.guava:listenablefuture:jar:sources:9999.0-empty-to-avoid-conflict-with-guava
- android - 通过Android上的相机拍摄并保存到文件时,如何为照片(不是位图)添加标题(水印)?