首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果前5行存在,则仅读取csv

如果前5行存在,则仅读取csv
EN

Stack Overflow用户
提问于 2021-03-18 06:40:05
回答 1查看 64关注 0票数 0

我有以下源代码。我上传了一个csv文件,并在BigQuery中写入了一个表。我需要包括的代码,只有该csv文件可以保存在表中,如果有5行的csv。如果没有5行,则停止该进程。

代码

代码语言:javascript
运行
复制
    with open('/tmp/{}'.format(input_file), "r") as csvfile:
        lines = len(list(csvfile))-1
        csvfile.seek(0)
        reader = csv.reader(csvfile)
        for i, row in enumerate(reader):
            # add header 
            if add_header:
              if (i == 0):
                  header_value = row[0:]
              
              lst_csvfile.append(header_value)
              add_header = False
            
            # add rows
            if (i > 0):
              # transform cpf
              new_row = [trata_cpf(row[0]), row[1], row[2]]
              lst_csvfile.append(new_row)
    # write gcs
    db_data.to_csv('/tmp/{}'.format(input_file) ,index=False)
    gcs_upload('{}'.format(input_file), '/tmp/{}'.format(input_file), gcs_bucket_temp)
    print('Encrypt File DONE: {}'.format(input_file))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-18 07:03:44

您在这里有一个正确的想法,使用lines = len(list(csvfile))-1来确定文件中有多少非标题行(记录)。您可以添加一个简单的if语句来跳过循环或从方法返回:

代码语言:javascript
运行
复制
with open('/tmp/{}'.format(input_file), "r") as csvfile:
    lines = len(csvfile.readlines()) - 1

    csvfile.seek(0)
    reader = csv.reader(csvfile)

    if lines < 5:
        return  # assuming you do not want the last 3 lines to execute

    for i, row in enumerate(reader):
        # rest of code

如果您需要在else语句中使用最后几行来执行wrap:

代码语言:javascript
运行
复制
    lines = len(csvfile.readlines()) - 1

    csvfile.seek(0)
    reader = csv.reader(csvfile)

    if lines >= 5:
        for i, row in enumerate(reader):
            # rest of code

    # write gcs
    db_data.to_csv('/tmp/{}'.format(input_file) ,index=False)
    gcs_upload('{}'.format(input_file), '/tmp/{}'.format(input_file), gcs_bucket_temp)
    print('Encrypt File DONE: {}'.format(input_file))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66682274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档