Python 函数抛出无效语法错误
Python function throwing invalid syntax error
我有一个函数可以解开一些光谱仪数据,在此处以极其简洁的方式复制:
def loader(filename):
global lister
lister = pd.read_pickle(str(filename) + ".pkl")
该函数按照我的意愿工作,除了我宁愿 tab/complete 文件名而不是必须在文件扩展名上退格。我不确定为什么不能将文件名 (20160321.pkl) 直接放入函数本身。我可以创建显示为“20160321.pkl”的字符串,但为什么我不能创建包含扩展名的制表符完成的文件名字符串,如下所示?
def loader(filename):
global lister
lister = pd.read_pickle(str(filename))
我敢肯定这其中有一个我尚未了解的简单原因。
当您调用 loader(20160321)
时,您实际上传递的是一个整数 (20160321
),而不是一个字符串。这就是第一种方法起作用的原因,因为 str(filename)
将该整数转换为字符串,然后在末尾添加 ".pkl"
。
当您调用 loader(20160321.pkl)
时,您会遇到语法错误,因为数字中可以有小数点,但后面不能有字符(因此 3.5
是允许的,但 3.abc
是不允许的)。
如果你想用扩展名调用它,那么你需要传入一个字符串:loader("20160321.pkl")
。您也可以使用单引号 (loader('20160321.pkl')
),但在任何情况下您都希望传递一个字符串。
我有一个函数可以解开一些光谱仪数据,在此处以极其简洁的方式复制:
def loader(filename):
global lister
lister = pd.read_pickle(str(filename) + ".pkl")
该函数按照我的意愿工作,除了我宁愿 tab/complete 文件名而不是必须在文件扩展名上退格。我不确定为什么不能将文件名 (20160321.pkl) 直接放入函数本身。我可以创建显示为“20160321.pkl”的字符串,但为什么我不能创建包含扩展名的制表符完成的文件名字符串,如下所示?
def loader(filename):
global lister
lister = pd.read_pickle(str(filename))
我敢肯定这其中有一个我尚未了解的简单原因。
当您调用 loader(20160321)
时,您实际上传递的是一个整数 (20160321
),而不是一个字符串。这就是第一种方法起作用的原因,因为 str(filename)
将该整数转换为字符串,然后在末尾添加 ".pkl"
。
当您调用 loader(20160321.pkl)
时,您会遇到语法错误,因为数字中可以有小数点,但后面不能有字符(因此 3.5
是允许的,但 3.abc
是不允许的)。
如果你想用扩展名调用它,那么你需要传入一个字符串:loader("20160321.pkl")
。您也可以使用单引号 (loader('20160321.pkl')
),但在任何情况下您都希望传递一个字符串。