【问题标题】:Invalid syntax during reading of csv file in python在python中读取csv文件时语法无效
【发布时间】:2018-10-29 05:32:45
【问题描述】:

我正在尝试在 python 中使用 csv.reader 读取文件。我是 Python 新手,正在使用 Python 2.7.15

我尝试重新创建的示例来自this 页面的“Reading CSV Files With csv”部分。这是代码:

import csv

with open('employee_birthday.txt') as csv_file:
    csv_reader = csv.reader(csv_file, delimiter=',')
    line_count = 0
    for row in csv_reader:
        if line_count == 0:
            print(f'Column names are {", ".join(row)}')
            line_count += 1
        else:
            print(f'\t{row[0]} works in the {row[1]} department, and was born in {row[2]}.')
            line_count += 1
    print(f'Processed {line_count} lines.')

在执行代码期间,我收到以下错误:

File "ross_test2.py", line 11
  print(f'Column names are {", ".join(row)}')
                                         ^
SyntaxError: invalid syntax 

我做错了什么?我怎样才能避免这个错误。我将不胜感激。

【问题讨论】:

    标签: python python-2.7 csv


    【解决方案1】:

    因为f前面的字符串(f-strings)只适用于python 3.5以上的版本,所以试试这个:

    print('Column names are',", ".join(row))
    

    或者:

    print('Column names are %s'%", ".join(row))
    

    或者:

    print('Column names are {}'.format(", ".join(row)))
    

    【讨论】:

    • U9-Forward:感谢您的帮助。我想,也许我也应该更改其他打印语句。
    • @Ross 很高兴为您提供帮助,:-),???,如果有效,请接受 :-),并投票 :-)
    • U9-Forward:非常感谢您的帮助 :-) 我已经接受了这个答案(我想这需要 4 分钟才能显示出来。)我想知道如何更改此打印声明(我现在遇到了错误):“ print(f'\t{row[0]} 在 {row[1]} 部门工作,出生在 {row[2]}.')”
    • @Ross 试试这个print('\t%s works in the %s department, and was born in %s.'%row[:3])
    • U9-Forward:再次感谢您的帮助。我听从了您的建议。我收到此错误:“print('\t%s 在 %s 部门工作,并且出生在 %s.'%row)” 实际上,我想学习的是如何获取给定的字符此文件中的行和列位置(使用标准 python 库。)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 2019-05-02
    • 1970-01-01
    • 2019-11-12
    • 2019-12-22
    • 2015-07-21
    • 1970-01-01
    相关资源
    最近更新 更多