以下脚本在“with open ...”行显示语法错误
#!/usr/bin/python
import fileinput;
import csv;
def read_csv_file ( file_name ):
with open('file.csv', 'r') as my_csv_file:
reader = csv.reader(my_csv_file)
for row in reader:
print ( row )
read_csv_file();
答案 0 :(得分:2)
您的代码:
with open('file.csv', 'r') as my_csv_file:
reader = csv.reader(my_csv_file)
for row in reader:
print ( row )
缩进不正确。它应该是:
with open('file.csv') as my_csv_file: # the 'r' mode is implicit
reader = csv.reader(my_csv_file)
for row in reader: # this line shouldn't have been indented
print(row)
此外,#!/usr/bin/python
将使用Python 2运行脚本,而不是Python 3.您的系统可能有一个非常旧版本的Python 2(2.4或之前版本),它不会识别{{3上下文管理器。如果必须有一个shebang,请将其设为#!/usr/bin/env python3.5
或类似的东西。或者,如果您不打算将脚本设置为可执行文件并将其作为./scriptname.py
或其他任何内容运行,请完全删除它。
还有一件事 - 不要将文件命名为csv.py
,因为这会与csv
模块发生冲突。避免在系统上的任何模块之后命名文件。例如,csv_test.py
将是更好的选择。