我有以下代码:
with open('current.cfg', 'r') as current:
if len(current.read()) == 0:
print('FILE IS EMPTY')
else:
for line in current.readlines():
print(line)
该文件包含以下内容:
#Nothing to see here
#Just temporary data
PS__CURRENT_INST__instance.12
PS__PREV_INST__instance.16
PS__DEFAULT_INST__instance.10
但是由于某种原因,current.readlines()
每次都只返回一个空列表。
代码中可能存在愚蠢的错误或错字,但我只是找不到。提前致谢。
你读的文件 已经 和文件指针不是在 末尾 的文件。readlines()
然后调用将不会返回数据。
仅读取一次文件:
with open('current.cfg', 'r') as current:
lines = current.readlines()
if not lines:
print('FILE IS EMPTY')
else:
for line in lines:
print(line)
另一种选择是在重新阅读之前先回到开头:
with open('current.cfg', 'r') as current:
if len(current.read()) == 0:
print('FILE IS EMPTY')
else:
current.seek(0)
for line in current.readlines():
print(line)
但这只是浪费CPU和I / O时间。
最好的办法是尝试和阅读 小
数据量,或寻求到了最后,通过采取文件的大小file.tell()
,然后再寻找回到起点,一切不读。然后将文件用作迭代器,以防止将所有数据读取到内存中。这样,当文件很大时,您就不会产生内存问题:
with open('current.cfg', 'r') as current:
if len(current.read(1)) == 0:
print('FILE IS EMPTY')
else:
current.seek(0)
for line in current:
print(line)
要么
with open('current.cfg', 'r') as current:
current.seek(0, 2) # from the end
if current.tell() == 0:
print('FILE IS EMPTY')
else:
current.seek(0)
for line in current:
print(line)
我试图解决Leetcode上的二和算法: 给定一个整数数组,返回两个数字的索引,使它们相加到一个特定的目标。您可以假设每个输入都有一个解决方案,并且不能两次使用同一个元素。 我想到了这个: 问题是它没有返回任何内容,也没有返回打印的声明。有什么想法吗?
您好,我目前正在处理HackerRank上的Java挑战,遇到了一个用我的代码无法解决的问题。 提示如下:, 给定一个字符串 s 和一个整数 k,完成该函数,以便它找到字典上长度 k 的最小和最大子字符串。 样本输入: welcometojava 3 示例输出: ava wel 最小和最大的子字符串仅基于第一个整数。因此,对于我的解决方案,我决定创建一个整数数组,并使用 String s 中每个可
这是我的查看页面代码 我在codeigniter中检查codeigniter表单验证,它复制并粘贴了我的控制器,但出现了相同的错误 这是我的控制器代码 表单验证不返回任何内容和
问题内容: 如果“表”没有行。什么是最简单的检查方法? 问题答案: 您可以使用mysql_num_rows($ results) 来检查是否返回了0行,或者使用以下更快的替代方法:
我在HBASE有一张桌子。我和菲尼克斯一起创造的 然后我用spark填充它(我使用hortonworks shc-core连接器): 多谢帮忙。
我有一个像这样的mysql表 但是我无法用这个函数检索“成人”和“儿童”的值 错误日志显示变量被正确地传递给函数: 为什么此函数返回?