【问题标题】:How to manipulate one line at a time? [duplicate]如何一次操作一行? [复制]
【发布时间】:2018-08-19 08:52:01
【问题描述】:

如果我使用以下代码:

with open('examplefile.csv') as tst:
    for line in tst:
        x = line
        print(x)

我看到 5 列和许多行。

如何一次取一行并为一行中的每个项目设置变量?

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    for循环已经一次占用一行

    将行拆分为列表。

    假设逗号是分隔符,这会将变量分配给每一列

    x, y, z, a, b = line.split(',')
    print(x)
    

    这也假设您在列中没有嵌套逗号

    如需更好的解决方案,请查看csv module

    注意:Pandas 对 CSV 操作有更多有用的功能

    【讨论】:

    • 这是正确的做法。
    • 更好的方法是使用 DictReader,尽管 docs.python.org/3/library/csv.html#csv.DictReader
    • 这对用引号转义的单元格条目有用吗?例如 line ="\"City\", \"Austin, TX\""。预计 2 个单元格。
    • @MFisher 感谢您使用我当前的城市,但问题是否显示此类数据?
    • 我猜我们是邻居。 :) 问题很笼统。我不认为自己是“蟒蛇人”,所以我很好奇。这可能就是为什么我建议使用内置函数而不是用逗号分隔的原因。我在生产代码(不是python)中这样做(以逗号分隔)已经被烧毁了。
    【解决方案2】:

    使用 csv 模块:

    import csv
    with open('examplefile.csv') as tst:
        reader = csv.reader(tst, delimiter=',')
        for line in reader:
            # line is a delimiter-delimited line in your file
    

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-02
      • 1970-01-01
      • 2021-08-18
      相关资源
      最近更新 更多