python循环赢了';不要在第二遍重复
在Python空闲Shell中运行以下命令时:python循环赢了';不要在第二遍重复,python,csv,Python,Csv,在Python空闲Shell中运行以下命令时: f = open(r"H:\Test\test.csv", "rb") for line in f: print line #this works fine 但是,当我再次运行以下命令时: for line in f: print line #this does nothing 这不起作用,因为您第一次已经查找到文件的末尾。您需要倒带(使用.seek(0))或重新打开文件 其他一些要点: Python有一个非常好
f = open(r"H:\Test\test.csv", "rb")
for line in f:
print line
#this works fine
但是,当我再次运行以下命令时:
for line in f:
print line
#this does nothing
这不起作用,因为您第一次已经查找到文件的末尾。您需要倒带(使用
.seek(0)
)或重新打开文件
其他一些要点:
'rU'
模式打开文件,而不是'rb'
<代码>'rU'是通用换行模式,它将为您处理来自具有不同行尾的平台的源文件与
一起使用,因为即使出现错误,它也会为您清理句柄。例:这不起作用,因为您第一次已经查找到文件的末尾。您需要倒带(使用
.seek(0)
)或重新打开文件
其他一些要点:
'rU'
模式打开文件,而不是'rb'
<代码>'rU'是通用换行模式,它将为您处理来自具有不同行尾的平台的源文件与
一起使用,因为即使出现错误,它也会为您清理句柄。例:因为您已经遍历了CSV文件,迭代器已经耗尽。您需要在第二次循环之前重新打开它。因为您已经遍历了CSV文件,迭代器已经耗尽。您需要在第二次循环之前重新打开它。您可以从文件中读取变量中的数据,然后您可以在脚本中重复此数据任意次数。这比来回执行
seek
要好
f = open(r"H:\Test\test.csv", "rb")
data = f.readlines()
for line in data:
print line
for line in data:
print line
输出:
# This is test.csv
Line1,This is line 1, there are, some numbers here,321423423
Line2,This is line2 , there are some characters here,sdfdsfdsf
# This is test.csv
Line1,This is line 1, there are, some numbers here,321423423
Line2,This is line2 , there are some characters here,sdfdsfdsf
您可以从变量中的文件中读取数据,然后可以在脚本中对该数据进行任意次数的迭代。这比来回执行
seek
要好
f = open(r"H:\Test\test.csv", "rb")
data = f.readlines()
for line in data:
print line
for line in data:
print line
输出:
# This is test.csv
Line1,This is line 1, there are, some numbers here,321423423
Line2,This is line2 , there are some characters here,sdfdsfdsf
# This is test.csv
Line1,This is line 1, there are, some numbers here,321423423
Line2,This is line2 , there are some characters here,sdfdsfdsf
..使用seek(0)是另一种选择,应该具有较少的开销(不显著)并避免读/写并发潜在问题。使用seek(0)是另一种选择,应该具有较少的开销(不显著)并避免读/写并发潜在问题。关于使用csv模块读取文件,这一点很好。它还允许我使用列表索引,这是我所需要的。是否有类似的列表重置功能?我遇到了一个类似的情况,我打印列表中的项目,它第一次工作,但是我输入相同的代码,它什么也不打印。我必须删除列表并重新创建它。我正在使用python空闲shell,如果matters@wannabe_n00b请在单独的问题中提问并显示您的代码。使用csv模块读取文件的要点很好。它还允许我使用列表索引,这是我所需要的。是否有类似的列表重置功能?我遇到了一个类似的情况,我打印列表中的项目,它第一次工作,但是我输入相同的代码,它什么也不打印。我必须删除列表并重新创建它。我正在使用python空闲shell,如果matters@wannabe_n00b请在单独的问题中提问并显示您的代码。这取决于您正在加载的CSV。通常,当我们处理来自客户的CSV文件时,它们的大小是多GB。一个
seek(0)
与将其全部加载到内存相比非常便宜。这取决于您正在加载的CSV。通常,当我们处理来自客户的CSV文件时,它们的大小是多GB。一个seek(0)
与将其全部加载到内存相比非常便宜。