python3 环境 代码如下:
file_path = os.getcwd() + "/test.txt"
project_file = open(file_path,"r")
#list_file = project_file.readlines()
for index, line in enumerate(project_file):
print("index=%d,linex=%s"%(index,line))
test.txt 里面有一些任意文本内容,在注释掉第三行的情况下,下面的 print 能正常打印文本内容。 去除第三行的注释后,下面的 print 无打印,也就是 project_file 为空了? 同样的把 for 循环放到 readlines 上面,第一个 print 能正常打印文本内容,但是也会导致 list_file 为空,print 打出的长度为 0,代码如下:
file_path = os.getcwd() + "/test.txt"
project_file = open(file_path,"r")
for index, line in enumerate(project_file):
print("index=%d,linex=%s"%(index,line))
list_file = project_file.readlines()
print(len(list_file))
我的问题是:enumerate 或者 readlines 操作过一次文件流后,是否会导致文件流为空?或者是我的使用有问题,我是 python 新手,求大佬解惑
1
holajamc 2018-12-06 16:54:12 +08:00
事实上是不会的
In [1]: with open(file='README.md', mode='r', encoding='utf8') as f: ...: res = f.readlines() ...: In [2]: res Out[2]: ['这次会有比较多的代码,但核心代码都是你已经亲自写过的~\n', '请注意阅读顺序,ext 会作为课外阅读内容~'] In [3]: for index, value in enumerate(res): ...: print(index, value) ...: 0 这次会有比较多的代码,但核心代码都是你已经亲自写过的~ 1 请注意阅读顺序,ext 会作为课外阅读内容~ |
2
eastlhu OP @holajamc 你可以看看我的执行结果 ![]( https://i.loli.net/2018/12/06/5c08e64ebe35d.png)
|