我在打开和调整 pickle 文件的 for() 函数中不断收到 "Ran out of input" 错误
I keep getting "Ran out of input" error in for() function to open and adjust pickle file
我在python制作股票数据MACD计算器。我的方法是用'for()'
访问某个目录下的pickle数据,逐一计算MACD值。但是,我每次都得到 'Ran out of input error'。我检查了存储 pickle 数据的目录,它不是空的。有趣的是,如果我只是将数字放在 i
位置而不使用 'for()'
,我可以获得 pickle 文件的数据。请帮我摆脱这个错误。
这是我的代码:
'''
import pickle
import os
import pathlib
from pathlib import Path
file_list = os.listdir('/home/sejahui/projects/pickle_data')
os.chdir('/home/sejahui/projects/pickle_data')
for i in range(2):
odd = file_list[i]
with open(odd,'rb') as stock:
data = pickle.load(stock)
print(data)
'''
在这种情况下,实际上,您使用 file_list = os.listdir('/home/sejahui/projects/pickle_data')
创建了一个列表。您不需要 range
进行迭代。
错误是因为有时只有1个文件所以它会在索引之外。正确的做法是这样的:
import pickle
import os
import pathlib
from pathlib import Path
file_list = os.listdir('/home/sejahui/projects/pickle_data')
os.chdir('/home/sejahui/projects/pickle_data')
for str in file_list:
with open(str,'rb') as stock:
data = pickle.load(stock)
print(data)
您甚至可以根据正则表达式或模式向过滤器添加 if
语句
if str == "something":
with open(str,'rb') as stock:
data = pickle.load(stock)
我在python制作股票数据MACD计算器。我的方法是用'for()'
访问某个目录下的pickle数据,逐一计算MACD值。但是,我每次都得到 'Ran out of input error'。我检查了存储 pickle 数据的目录,它不是空的。有趣的是,如果我只是将数字放在 i
位置而不使用 'for()'
,我可以获得 pickle 文件的数据。请帮我摆脱这个错误。
这是我的代码:
'''
import pickle
import os
import pathlib
from pathlib import Path
file_list = os.listdir('/home/sejahui/projects/pickle_data')
os.chdir('/home/sejahui/projects/pickle_data')
for i in range(2):
odd = file_list[i]
with open(odd,'rb') as stock:
data = pickle.load(stock)
print(data)
'''
在这种情况下,实际上,您使用 file_list = os.listdir('/home/sejahui/projects/pickle_data')
创建了一个列表。您不需要 range
进行迭代。
错误是因为有时只有1个文件所以它会在索引之外。正确的做法是这样的:
import pickle
import os
import pathlib
from pathlib import Path
file_list = os.listdir('/home/sejahui/projects/pickle_data')
os.chdir('/home/sejahui/projects/pickle_data')
for str in file_list:
with open(str,'rb') as stock:
data = pickle.load(stock)
print(data)
您甚至可以根据正则表达式或模式向过滤器添加 if
语句
if str == "something":
with open(str,'rb') as stock:
data = pickle.load(stock)