[英]getting Error SyntaxError: 'return' outside function
如果找到文件,我需要返回值
如果未找到将抛出错误Index out of list
将需要捕获并返回在异常中分配给 var 变量的值并返回该变量值
错误 :
C:\Users\admin\PycharmProjects\pythonProject\venv\Scripts\python.exe C:/Users/admin/PycharmProjects/pythonProject3/search.py
File "C:\Users\admin\PycharmProjects\pythonProject3\search.py", line 13
return var
^
SyntaxError: 'return' outside function
我的代码:
import os
import glob
pathname='C:\\Users\\admin\\Desktop\\JUL\\'
if os.path.exists(pathname):
var=glob.glob('{0}/log.*'.format(pathname))
try :
fnme=var[0]
head , tail = os.path.split(fnme)
var=tail
return var
except IndexError as Ier:
var='abc.txt'
return var
预期输出:
如果找到文件,则返回 var => log.txt
如果没有从fnme=var[0]
返回任何值,那么它会导致 Index Out of List ,在这种情况下返回 var => abc.txt
你只能从一个函数返回,而你在那里没有函数。
但是,根据您问题中的代码和描述,我会说您的案例中“返回”的定义只是打印值。 这可以通过以下方式完成(当然,在导入sys
之后):
print(var)
sys.exit()
但是,您也可以稍微清理一下代码,使其更加简洁:
import os
import glob
pathname='C:\\Users\\admin\\Desktop\\JUL\\'
if os.path.exists(pathname):
var = glob.glob(f'{pathname}/log.*')
try:
_, name = os.path.split(var[0])
except IndexError:
name = 'abc.txt'
print(name)
Python返回字用于从函数返回值。 如果您的代码不在函数内,则不能使用返回字。
为了使您的代码工作,您可以将其更改为:
import os
import glob
pathname='C:\\Users\\admin\\Desktop\\JUL\\'
if os.path.exists(pathname):
var=glob.glob('{0}/log.*'.format(pathname))
try :
fnme=var[0]
head , tail = os.path.split(fnme)
var=tail
return var
except IndexError as Ier:
var='abc.txt'
return var
对此:
import os
import glob
pathname='C:\\Users\\admin\\Desktop\\JUL\\'
if os.path.exists(pathname):
var = glob.glob('{0}/log.*'.format(pathname))
try :
fnme = var[0]
head, tail = os.path.split(fnme)
var = tail
except IndexError:
var = 'abc.txt'
print(var) # will be 'abc.txt' if there is an index error
感谢您的解决方案,我能够做到: @paxdiablo和@GreyHope
import os
import glob
pathname='C:\\Users\\admin\\Desktop\\JUL\\'
def returnFile(pathname):
if os.path.exists(pathname):
var = glob.glob('{0}/abc.*'.format(pathname))
try:
fnme = var[0]
head, tail = os.path.split(fnme)
var = tail
except IndexError as er:
var='abc.txt'
return var
getfile=returnFile(pathname)
print(getfile)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.