Python 使用csv读取器后无法用于
我的任务是编写一个脚本来检查CSV文件中给定数据的MX记录。我开始尝试使用正则表达式检查它,在此之前我尝试读取CSV文件。我还想记录进度,以便打印它所在的行号,但每当我使用cvs_reader对象计算行长度时,我都无法进入for循环Python 使用csv读取器后无法用于,python,python-3.x,csv,Python,Python 3.x,Csv,我的任务是编写一个脚本来检查CSV文件中给定数据的MX记录。我开始尝试使用正则表达式检查它,在此之前我尝试读取CSV文件。我还想记录进度,以便打印它所在的行号,但每当我使用cvs_reader对象计算行长度时,我都无法进入for循环 import csv with open('test_list.csv') as csv_file: csv_reader = csv.reader(csv_file, delimiter=',') line_count = 0 data =
import csv
with open('test_list.csv') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=',')
line_count = 0
data = list(csv_reader)
row_count = len(data)
for row in csv_reader:
print({row[2]})
line_count += 1
print('Checking '+ str(line_count) +' of '+ str(row_count))
print('Processed lines :'+str(row_count))
我得到的结果是处理行:40
python脚本编写方面的新功能。请帮忙 我的test_list.csv如下所示
fname, lname, email
bhanu2, singh2, bhanudoesnotexist@doesnotexit.com
bhanu2, singh2, bhanudoesnotexist@doesnotexit.com
bhanu2, singh2, bhanudoesnotexist@doesnotexit.com
bhanu2, singh2, bhanudoesnotexist@doesnotexit.com
Total 40 times continued
首先,csv数据与此问题无关 解决方案:
import csv
input_file = open("test_list.csv", "r").readlines()
print(len(input_file))
csv_reader = csv.reader(input_file)
line_count = 0
# data = list(csv_reader)
# row_count = len(data)
for row in csv_reader:
print({row[2]})
line_count += 1
print('Checking ' + str(line_count) + ' of ' + str(len(input_file)))
print('Processed lines :' + str(len(input_file)))
with open('test_list.csv') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=',')
line_count = 0
data = list(csv_reader)
row_count = len(data)
问题识别:
import csv
input_file = open("test_list.csv", "r").readlines()
print(len(input_file))
csv_reader = csv.reader(input_file)
line_count = 0
# data = list(csv_reader)
# row_count = len(data)
for row in csv_reader:
print({row[2]})
line_count += 1
print('Checking ' + str(line_count) + ' of ' + str(len(input_file)))
print('Processed lines :' + str(len(input_file)))
with open('test_list.csv') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=',')
line_count = 0
data = list(csv_reader)
row_count = len(data)
在代码data=list(csv\U阅读器)
中,由于这一行,您正在耗尽变量。所以它无法在for循环中循环
因此,您可以读取csv文件,如
input_file = open("test_list.csv", "r").readlines()
print(len(input_file))
然后使用
csv.reader()
解决方案:
import csv
input_file = open("test_list.csv", "r").readlines()
print(len(input_file))
csv_reader = csv.reader(input_file)
line_count = 0
# data = list(csv_reader)
# row_count = len(data)
for row in csv_reader:
print({row[2]})
line_count += 1
print('Checking ' + str(line_count) + ' of ' + str(len(input_file)))
print('Processed lines :' + str(len(input_file)))
with open('test_list.csv') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=',')
line_count = 0
data = list(csv_reader)
row_count = len(data)
问题识别:
import csv
input_file = open("test_list.csv", "r").readlines()
print(len(input_file))
csv_reader = csv.reader(input_file)
line_count = 0
# data = list(csv_reader)
# row_count = len(data)
for row in csv_reader:
print({row[2]})
line_count += 1
print('Checking ' + str(line_count) + ' of ' + str(len(input_file)))
print('Processed lines :' + str(len(input_file)))
with open('test_list.csv') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=',')
line_count = 0
data = list(csv_reader)
row_count = len(data)
在代码data=list(csv\U阅读器)
中,由于这一行,您正在耗尽变量。所以它无法在for循环中循环
因此,您可以读取csv文件,如
input_file = open("test_list.csv", "r").readlines()
print(len(input_file))
然后使用csv.reader()
由于变量data
中具体化了一个完整的行列表,因此可以简单地对其进行迭代
更改:
for row in csv_reader:
致:
csv.reader
返回一个iterable,当您使用list(csv\u reader)
读取csv的所有行时,您已经耗尽了iterable,因此当您想使用for
循环再次迭代csv\u reader
时,它没有什么可迭代的了
由于变量data
中具体化了一个完整的行列表,因此可以简单地对其进行迭代
更改:
for row in csv_reader:
致:
也许您还应该打印数据来帮助调试?您希望得到什么以及如何处理行:40
不是正确的输出?如果你能从tset\u list.csv
发布一个样本数据和你想要的输出,那将是非常有帮助的。我不认为这是csv数据的问题,因为data=list(csv\u reader)row\u count=len(data)没有进入for循环的问题
这两行。也许您还应该打印数据来帮助调试?您期望得到什么以及如何处理行:40
不是正确的输出?如果您可以发布来自tset\u list.csv
的示例数据和您所需的输出,这将非常有用。我认为这不是csv数据的问题,问题是由于data=list(csv\u reader)row\u count=len(data)
这两行,它没有进入for循环。