with open('save.txt', 'r') as fname:
data = fname.readlines()
print(data)
x = str(data)
if x.isspace():
print("only whitespaces")
else:
print("not only whitespaces")
我试过这个,但它似乎不工作。我想检测一个txt文件是否只包含空白,如果可能的话,还包含/n
。
方法readlines()
返回每一行的列表。你想要的是read()
方法,它为整个文件返回一个字符串。代码看起来像这样:
with open('save.txt', 'r') as fname:
data = fname.read()
print(data)
if data.isspace():
print("only whitespaces")
else:
print("not only whitespaces")
同时,isspace()
已经将n
和t
视为空白。
readlines()
返回字符串列表。您需要检查data
的元素,而不是简单地将列表转换为str。
with open('save.txt', 'r') as fname:
data = fname.readlines()
only_whitespace = all(line.isspace() for line in data)
if only_whitespace:
print("only whitespaces")
else:
print("not only whitespaces")
如果您想检测所有空白字符(空格,换行符,制表符,垂直空格,回车符…),那么isspace
可能适合您,只需将文件作为单个字符串读取:
with open('save.txt', 'r') as fname:
data = fname.read()
print(data)
if data.isspace():
print("only whitespaces")
else:
print("not only whitespaces")
如果你真的只想要空格和换行符,你可以使用set
操作:
with open('save.txt', 'r') as fname:
data = set(fname.read())
print(data)
if data.issubset({' ', 'n'}):
print("only whitespaces")
else:
print("not only whitespaces")