Python 需要帮助编写检测文件是否存在的代码吗
我试图编写代码,首先检查文件是否存在,然后检查文件是否为空,如果不是,则将文件内容放入列表中 如果文件不存在或是空的,它应该只返回一个空列表。每当我使用一个不存在的文件测试它时,它都会说它找不到该文件,即使我告诉它如果找不到该文件,它会返回一个空字符串 这是我的密码Python 需要帮助编写检测文件是否存在的代码吗,python,file,Python,File,我试图编写代码,首先检查文件是否存在,然后检查文件是否为空,如果不是,则将文件内容放入列表中 如果文件不存在或是空的,它应该只返回一个空列表。每当我使用一个不存在的文件测试它时,它都会说它找不到该文件,即使我告诉它如果找不到该文件,它会返回一个空字符串 这是我的密码 import os def fileToList(fileName): newList = [] fileSize = os.path.getsize(fileName) fileExist =
import os
def fileToList(fileName):
newList = []
fileSize = os.path.getsize(fileName)
fileExist = os.path.exists(fileName)
if fileExist == True:
if fileSize != 0:
f = open(fileName,"r")
for line in f:
newList.append(line.strip())
f.close()
return newList
else:
return newList
else:
return newList
代码出错的原因如下:
fileSize = os.path.getsize(fileName)
如果文件不存在,则无法获取其大小
import os
def fileToList(fileName):
if os.path.exists(fileName) and os.path.getsize(fileName):
with open(fileName, 'r') as f:
return f.readlines()
else:
return []
print(fileToList('random.txt'))
如果fileExist==True:,则将代码(as)中的行
fileSize=os.path.getsize(fileName)
移动到代码(as)的右下方,否则当文件不存在时将抛出错误
修改后的代码将如下所示:
import os
def fileToList(fileName):
newList = []
fileExist = os.path.exists(fileName)
if fileExist == True:
fileSize = os.path.getsize(fileName)
if fileSize != 0:
f = open(fileName,"r")
for line in f:
newList.append(line.strip())
f.close()
return newList
else:
return newList
else:
return newList
这一行fileSize=os.path.getsize(fileName)
应该放在文件存在测试之后。想想看,如果文件不存在,检查大小会抛出错误,是吗?也许你应该在尝试获取文件大小之前检查文件是否存在。只需打开文件,如果不存在,则处理异常@谢谢。请批准OP post上的编辑/操作。如果文件存在,您可以简化为,如果文件大小
。此外,应使用with open()
约定,并且(通常)函数只能有一个return
语句。