账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    用python迭代循环读取文本出现问题?
    19
    0

    手头两个csv表格(样本的内容贴在最下面),一大一小,大的有将近7万行,小的4千多行,需要找出其中大文件ic.csv的第6列中包含小文件ga.csv的第2列值的行。
    我自己尝试写了如下代码:


    file0 = 'ic.csv'
    file1 = 'ga.csv'
    
    ic = open(file0)
    ga = open(file1)
    count_ga = 0
    for ga_line in ga:
        count_ic = 0
        #获取GA第2列的值
        ga_str  = ga_line.split(',')[1]
        for ic_line in ic:
            #获取IC第6列的值
            ic_str = ic_line.split(',')[5]
            #如果IC第6列包含GA第2列中的值,则打印出各自的行号
            if ga_str in ic_str:
                print('GA第%d行与IC第%d行匹配'%(count_ga,count_ic))
                continue
            count_ic += 1            
        count_ga += 1

    运行上述代码只有这一条结果,不知道哪里出问题了,结果如下:

    GA第0行与IC第0行匹配

    将代码中的continue改成break后的结果如下:


    GA第0行与IC第0行匹配
    GA第1行与IC第8行匹配
    GA第2行与IC第0行匹配
    GA第3行与IC第0行匹配
    GA第4行与IC第0行匹配
    GA第5行与IC第0行匹配
    GA第6行与IC第0行匹配
    GA第7行与IC第0行匹配
    GA第8行与IC第0行匹配
    GA第9行与IC第0行匹配

    ga.csv内容:

    sdfsk,网站域名,skdf,skdf,skdf,skdf,skdf,skdf,skdf,skdf,skdf
    sdfsk,bmyxiao.com;,skdf,skdf,skdf,skdf,skdf,skdf,skdf,skdf,skdf
    sdfsk,xpjoyu.com;,skdf,skdf,skdf,skdf,skdf,skdf,skdf,skdf,skdf
    sdfsk,,skdf,skdf,skdf,skdf,skdf,skdf,skdf,skdf,skdf
    sdfsk,bwp.com;,skdf,skdf,skdf,skdf,skdf,skdf,skdf,skdf,skdf
    sdfsk,cscai.com;,skdf,skdf,skdf,skdf,skdf,skdf,skdf,skdf,skdf
    sdfsk,,skdf,skdf,skdf,skdf,skdf,skdf,skdf,skdf,skdf
    sdfsk,jodu.com;,skdf,skdf,skdf,skdf,skdf,skdf,skdf,skdf,skdf
    sdfsk,csd168.com;,skdf,skdf,skdf,skdf,skdf,skdf,skdf,skdf,skdf
    sdfsk,hnpx.com;,skdf,skdf,skdf,skdf,skdf,skdf,skdf,skdf,skdf

    ic.csv内容:

    序号,skdlsldjfl,skdfjavsdk,sfadfrt,dsflskdjf,网站域名
    1,skdlsldjfl,skdfjavsdk,sfadfrt,dsflskdjf,yazu.com;
    2,skdlsldjfl,skdfjavsdk,sfadfrt,dsflskdjf,benyz.com;benkz.com;
    3,skdlsldjfl,skdfjavsdk,sfadfrt,dsflskdjf,tahucy.cn;taochy.com;
    4,skdlsldjfl,skdfjavsdk,sfadfrt,dsflskdjf,zgtzs.com;
    5,skdlsldjfl,skdfjavsdk,sfadfrt,dsflskdjf,csjt.com;
    6,skdlsldjfl,skdfjavsdk,sfadfrt,dsflskdjf,hoa.cc;
    7,skdlsldjfl,skdfjavsdk,sfadfrt,dsflskdjf,cslzc.com;
    8,skdlsldjfl,skdfjavsdk,sfadfrt,dsflskdjf,dykm.com;sxdw.com;
    9,skdlsldjfl,skdfjavsdk,sfadfrt,dsflskdjf,bmyxiao.com;
    10,skdlsldjfl,skdfjavsdk,sfadfrt,dsflskdjf,xpjoyu.com;
    ,skdlsldjfl,skdfjavsdk,sfadfrt,dsflskdjf,
    11,skdlsldjfl,skdfjavsdk,sfadfrt,dsflskdjf,bwp.com;
    12,skdlsldjfl,skdfjavsdk,sfadfrt,dsflskdjf,cscai.com;
    ,skdlsldjfl,skdfjavsdk,sfadfrt,dsflskdjf,
    13,skdlsldjfl,skdfjavsdk,sfadfrt,dsflskdjf,jodu.com;
    14,skdlsldjfl,skdfjavsdk,sfadfrt,dsflskdjf,csd168.com;
    15,skdlsldjfl,skdfjavsdk,sfadfrt,dsflskdjf,hnpx.com;
    16,skdlsldjfl,skdfjavsdk,sfadfrt,dsflskdjf,stkj.com;
    17,skdlsldjfl,skdfjavsdk,sfadfrt,dsflskdjf,hnpjx.com;
    18,skdlsldjfl,skdfjavsdk,sfadfrt,dsflskdjf,zhanjy.com;
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 饿狼传说〆 普通会员 1楼

      如果你在使用Python迭代循环读取文本时出现问题,可能有以下几个原因:

      1. 文件路径不正确:确保你提供的文件路径是正确的。如果你使用的是相对路径,那么你可能需要使用os.path.join()函数将它们连接起来。

      2. 文件不存在:在尝试读取文件之前,确保文件确实存在。你可以使用os.path.isfile()函数检查文件是否存在。

      3. 文件模式不正确:如果你使用的是二进制模式读取文件,那么你需要使用os.path.read()函数读取整个文件。

      4. 文件编码不正确:在处理文件时,确保你的文件编码是正确的。你可以使用open()函数的encoding参数来指定文件的编码。

      5. 内存问题:如果你的文件非常大,那么读取整个文件可能会导致内存问题。你可以尝试将文件分成小块,然后逐块读取。

      如果你已经检查了这些因素,并且问题仍然存在,那么你可能需要提供更多的信息,例如错误消息,代码,以及你尝试读取的文件的详细信息。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部