Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python从字符串列表开始删除多行_Python_Csv - Fatal编程技术网

Python从字符串列表开始删除多行

Python从字符串列表开始删除多行,python,csv,Python,Csv,我试图从一个文件中删除多行,其中的行以指定的字符串开头。 我试过使用下面的列表,但行写入文件的次数与列表中的项目相同。有些行被删除了,有些没有我很确定这是因为没有在正确的时间阅读下一行 trunklog = open('TrunkCleanedDaily.csv', 'r') fh = open("TCDailyFinal.csv", "w") firstletter = ['Queue,Completed', 'Outbound,', 'Red_

我试图从一个文件中删除多行,其中的行以指定的字符串开头。 我试过使用下面的列表,但行写入文件的次数与列表中的项目相同。有些行被删除了,有些没有我很确定这是因为没有在正确的时间阅读下一行

    trunklog = open('TrunkCleanedDaily.csv', 'r')
fh = open("TCDailyFinal.csv", "w")
firstletter = ['Queue,Completed', 'Outbound,', 'Red_Team_DM,', 'Sunshine,', 'Agent,','Disposition,', 'Unknown,']
 
while True:
    line = trunklog.readline()
    if not line:
        break;
    for i in firstletter:
        if line.startswith(i):
            print('del ' + line, end='')
            # line = trunklog.readline()
        else:
            fh.write(line)
            print('keep ' + line,end='')
            line = trunklog.readline()
非常感谢您对我的帮助

我试图删除的某些内容:

Queue,Completed,Abandons,Exits,Unique,Completed %,Not Completed %,Total Calls,
Green_Team_AMOne,93,0,0,0,100.00%,0.00%,8.04%,
Green_Team_DM,11,0,0,0,100.00%,0.00%,0.95%,
Green_Team_IVR,19,0,0,0,100.00%,0.00%,1.64%,
Outbound,846,131,0,0,86.59%,13.41%,84.44%,
Red_Team_AMOne,45,0,0,0,100.00%,0.00%,3.89%,
Red_Team_DM,3,0,0,0,100.00%,0.00%,0.26%,
Red_Team_IVR,5,0,0,0,100.00%,0.00%,0.43%,
Sunshine,4,0,0,0,100.00%,0.00%,0.35%,
Queue,Total Call Time,Average Call Time,Average Hold Time,Call Time %,None,
Green_Team_AMOne,32:29:06,20:57,00:10,42.92%,None,
Green_Team_DM,2:41:35,14:41,00:16,3.56%,None,
Green_Team_IVR,1:47:12,05:38,00:19,2.36%,None,
请尝试以下代码:

trunklog = open('TrunkCleanedDaily.csv', 'r')
fh = open("TCDailyFinal.csv", "w")
firstletter = ['Queue,Completed', 'Outbound,', 'Red_Team_DM,', 'Sunshine,', 'Agent,', 'Disposition,', 'Unknown,']

for line in trunklog:
    cnt=0
    for i in firstletter:
        if line.startswith(i):
            print('del ' + line, end='')
            cnt=1

    if not cnt:
        fh.write(line)
        print('keep ' + line, end='')
我对你的代码做了一点修改。 并添加了一个变量“cnt”,若第一个单词在firstletter列表中,则该变量将为1。
如果cnt=0,则它会将行写入新文件。

您只需为
for
循环留下destine else语句,如果必须删除行,则添加
break

trunklog=open('TrunkCleanedDaily.csv','r')
fh=打开(“TCDailyFinal.csv”,“w”)
firstletter=[“队列,已完成”,“出站”,“红色团队”,“阳光”,“代理”,“处置”,“未知”]
尽管如此:
line=trunklog.readline()
如果不是直线:
打破
因为我的第一个字母是:
如果第行从(i)开始:
打印('del'+行,结束='')
打破
其他:
fh.写入(行)
打印('保留'+行,结束='')
输出文件

Green_Team_AMOne,93,0,0,0,100.00%,0.00%,8.04%,
Green_Team_DM,11,0,0,0,100.00%,0.00%,0.95%,
Green_Team_IVR,19,0,0,0,100.00%,0.00%,1.64%,
Red_Team_AMOne,45,0,0,0,100.00%,0.00%,3.89%,
Red_Team_IVR,5,0,0,0,100.00%,0.00%,0.43%,
Queue,Total Call Time,Average Call Time,Average Hold Time,Call Time %,None,
Green_Team_AMOne,32:29:06,20:57,00:10,42.92%,None,
Green_Team_DM,2:41:35,14:41,00:16,3.56%,None,
Green_Team_IVR,1:47:12,05:38,00:19,2.36%,None,

在处理csv时,我建议使用库
csv
pandas
,因为如果缺少一个分隔符,则出错的几率更高,并且操作csv数据更容易。另外,你可以上传文件内容和你想删除的内容吗?你跳过了几行。删除代码中的最后一行:
line=trunklog.readline()。6当一个匹配列表项7时,没有匹配项。Yash,你是否建议我使用csv或pandas删除我不想要的行?