Python 文件不是zip文件错误,但我没有打开zip文件
我正在建立一个BCT交易机器人。我正在从我的exchange从API中提取数据。我正在将数据保存在btc_10Xave_timestamp()之类的文件中。 我有另一个脚本正在分析这些数据。无论交易规模大小,这些文件每100笔交易生成一次。我经常把它们合并成一个主数据文件。我遇到的问题是这个分析器 这是我的密码:Python 文件不是zip文件错误,但我没有打开zip文件,python,pandas,dataframe,Python,Pandas,Dataframe,我正在建立一个BCT交易机器人。我正在从我的exchange从API中提取数据。我正在将数据保存在btc_10Xave_timestamp()之类的文件中。 我有另一个脚本正在分析这些数据。无论交易规模大小,这些文件每100笔交易生成一次。我经常把它们合并成一个主数据文件。我遇到的问题是这个分析器 这是我的密码: import numpy as np import pandas as pd import glob, time from playsound import playsound pr
import numpy as np
import pandas as pd
import glob, time
from playsound import playsound
print('Monitoring for time to trade...')
while True:
try:
previous_time = 0.0
time_of_file = 0.0
sum_size = 0.0
last_price = 0.0
previous_price = 0.0
files_array = np.sort(glob.glob('btc*.xlsx'))
if len(glob.glob('btc*.xlsx')) > 1:
df = pd.read_excel(files_array[-1], header=None)
sum_size = df.iloc[:,2].sum()
last_price = df.iloc[-1, 1]
previous_df = pd.read_excel(files_array[-2], header=None)
previous_price = previous_df.iloc[-1, 1]
diff_price = last_price - previous_price
previous_time = files_array[-2] [11:files_array[0].index('.xlsx')-1]
last_time = files_array[-1][11:files_array[0].index('.xlsx')-1]
time_lapse = str(float(last_time) - float(previous_time))
if float(time_lapse) < 10:
#volumne is rapidly moving in at this point
if diff_price > 0:
#buying opp
playsound('golong.mp3')
print('Buying Opportunity Here @: $'+ str(last_time))
print("Last 100 trades of : " + str(sum_size) + " BTC in " + time_lapse + " seconds.")
print("This volumne moved the market " +str(diff_price) + " USD")
elif diff_price < 0:
#sell opp
playsound('sellit.mp3')
print('Selling Opportunity Here @: $' + str(last_time))
print("Last 100 trades of : " + str(sum_size) + " BTC in " + time_lapse + " seconds.")
print("This volumne moved the market " +str(diff_price) + " USD")
else:
pass
time.sleep(10)
except Exception as e:
print(e)
continue
将numpy导入为np
作为pd进口熊猫
导入全局、时间
从playsound导入playsound
打印(‘交易时间监控…’)
尽管如此:
尝试:
上一次_时间=0.0
文件的时间=0.0
总和大小=0.0
最后价格=0.0
以前的价格=0.0
files\u array=np.sort(glob.glob('btc*.xlsx'))
如果len(glob.glob('btc*.xlsx'))>1:
df=pd.read\u excel(文件\u数组[-1],头=None)
sum_size=df.iloc[:,2].sum()
最后价格=df.iloc[-1,1]
以前的\u df=pd.read\u excel(文件\u数组[-2],标题=None)
以前的价格=以前的价格指数iloc[-1,1]
差异价格=上次价格-上次价格
上一次\u时间=文件\u数组[-2][11:文件\u数组[0]。索引('.xlsx')-1]
上次\u时间=文件\u数组[-1][11:文件\u数组[0]。索引('.xlsx')-1]
时间间隔=str(浮动(上次)-浮动(上次))
如果浮动(时间间隔)<10:
#此时volumne正在快速移动
如果差异价格>0:
#购买opp
播放声音('golong.mp3')
打印(‘此处购买机会@:$’+str(上次))
打印(“最后100笔交易:”+str(总和大小)+“BTC in”+时间间隔+“秒”)
印刷品(“本卷影响了市场”+str(不同价格)+“美元”)
elif差异价格<0:
#出售opp
播放声音('sellit.mp3')
打印(‘此处销售机会@:$’+str(上次))
打印(“最后100笔交易:”+str(总和大小)+“BTC in”+时间间隔+“秒”)
印刷品(“本卷影响了市场”+str(不同价格)+“美元”)
其他:
通过
时间。睡眠(10)
例外情况除外,如e:
打印(e)
持续
再次抛出的错误是:“文件不是zip文件”
我完全搞不清楚这是怎么发生的或为什么发生的。从这段代码的外观来看,它非常简单。我不知道错误的来源在哪里。当然,任何见解都值得赞赏。谢谢你们所有优秀的程序员 XSLX文件在内部是ZIP文件。例如,您可以使用解压缩XLSX文件。可能您要打开的文件不是XLSX文件,而是XLS文件(旧的office文件格式)或完全无关的文件 看起来你在不断地寻找新的文件
glob.glob('btc*.xlsx')
您可能找到了一个新文件,但该文件尚未完全写入。这可以通过在找到新文件后等待10秒来改善(不过,仅仅等待任意时间并不能100%解决问题)
没有堆栈跟踪。唯一的错误是。它说“文件不是zip文件”,并且由于while循环,它在无限循环中重复
没有堆栈跟踪,因为您捕获异常并只打印其消息。使用
traceback.print_exc()
要打印最后一个异常,或者更好的是,不要捕获异常。请编辑您的问题以包含错误的完整回溯欢迎使用StackOverflow。请按照您创建此帐户时的建议,阅读并遵循帮助文档中的发布指南。适用于这里。在您发布MCVE代码并准确指定问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中,并重现您指定的问题。除此之外,我们需要删除整个错误消息(包括回溯)和多余的代码。我重新运行代码,我必须等待错误再次出现,如果找不到解决方案,我将与大家分享。非常感谢。这是一个xlsx文件。我在等待错误再次击中这一次的回溯。多谢托马斯!是否有一种方法可以测试文件是否完全写入,因为听起来这可能是问题所在。有更好的解决办法吗?可能使用listdir()或os.walk实现?