我正在使用Atom/Electron构建一个基于数据对视频进行可视化的应用程序.每个视频都有一个相应的CSV文件,其中包含每个帧的信息.视频大约100分钟,因此文件有足够的数据!
我遇到的问题是加载和解析文件需要几秒钟.大多数时候这不是问题.但我需要制作部分视频的播放列表,每次更改视频时加载整个CSV文件都不是一个可行的选择.
我一直在寻找文件流选项作为fast-csv,但我没有设法开始阅读文件的任意部分.
编辑:来自FS文档.在这种情况下,问题是如何知道哪个字节对应于文件中我想要的位置?
options可以包括start和end值,以从文件而不是整个文件中读取一系列字节.开始和结束都是包含性的,从0开始.
对于这种情况,您认为哪种方法更好,性能最好?
具体来说:
有没有办法从CSV文件的任何部分开始读取流?
您是否认为有另一种存储方法可以让我更好地解决这个问题?
更新:
最后,我通过将数据存储在二进制格式的文件中来解决这个问题.因为我知道文件有多少列,所以我可以直接从文件段中读取,而不会影响性能.
我正在尝试使用网络爬虫来从某些网站获取产品以减少我的内存使用量(我在某处找不到内存泄漏).所以我试图异步地向一个回调发送参数,以便终止当前的上下文.
这就是我所在的地方:
var big = html.get(url);
callback(big);
big = null; // this isn't going to get erased until after big is done is it?
Run Code Online (Sandbox Code Playgroud)
这就是我尝试过的:
var big = html.get(url);
process.nextTick(function() {callback(big)}); // this seems wrong to me.
big = null;
Run Code Online (Sandbox Code Playgroud) 我刚刚向服务器管理员发了一条消息,询问他是否可以在服务器上设置cronjobs,他让我告诉他一切是否正常.如何测试cronjobs是否正常工作?
我这里有这段代码:
var express = require('express')
, http = require('http')
var app = express();
var server = app.listen(1344);
var io = require('socket.io').listen(server);
app.use(express.static(__dirname + '/public'));
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.session({secret: 'secret'}));
app.get('/', function(req, res){
if(req.session){
console.log(req.session);
}
console.log('ok');
});
Run Code Online (Sandbox Code Playgroud)
app.get()
回调中的代码未被调用.如果我注释掉这一app.use(express.static(__dirname + '/public'))
行,那么callaback就可以了.我试过改变订单,但它就像一个乐透!我想知道这里出了什么问题.
我确信这与我在如何调用中间件方面缺乏知识有关.有人能帮助我理解这个问题吗?
基本上我只想在提供文件之前执行一些逻辑,并在浏览器上加载index.html.顺便说一句,放在app.get()
前app.use(express.static())
一行,没有做到这一点!
我正在和拉斐尔合作,我认为我使用的方式不会利用一些看似有用的功能.
例如,我试图在Set(一组元素)上添加一个侦听器,以鼠标悬停在任何这些元素上的方式,脚本在整个集合上触发动画.
当您向集合添加侦听器时,Raphael会将侦听器添加到每个元素并分别为它们设置动画.
就像你在这个例子http://jsfiddle.net/4VYHe/3/中看到的那样,我想要同一组中的所有矩形(set = 10个矩形的水平组),在任何一个上改变鼠标上的颜色属性他们.
我在raphael文档中找到了一些方法,我认为必须有助于实现这一点.但我很难理解这些方法是如何工作的.
例如:
拉斐尔图书馆似乎非常强大,我真的想让它正常工作,我不想写各种不同的javascript黑客,因为我认为这些工具必须以更优雅的方式完成工作.
如果您认为我使用了错误的库,我仍然会接受各种建议.先感谢您.
- -编辑 - -
这是一个有效的例子(http://jsfiddle.net/4VYHe/6/).但这是一个缺乏效率和优雅的黑客.我想要一些正确使用正确工具的东西.
此页面上有一些信息.http://www.irunmywebsite.com/raphael/additionalhelp.php?v=2#PAGETOP.几个例子,但没有任何解释拉斐尔如何运作的例子.
我有这段代码:
var app = require('http').createServer(function(req, res){
console.log(req);
req.addListener('end', function () {
fileServer.serve(req, res);
});
});
var statics = require('node-static');
var fileServer = new statics.Server('./');
app.listen(1344, '127.0.0.1');
app.on('error', function(err){
console.log(err);
})
Run Code Online (Sandbox Code Playgroud)
它工作得很好,直到我做了一些更改,节点给出了一个错误,当我回去时,那个错误不再存在,但是在end
事件没有被触发之前它没有工作.因此,内部的任何东西req.addListener('end', function (){});
都不会被调用
即使我运行另一个使用相同事件的node.js,也不会被激活.因此,如果请求的结束事件被破坏了.但是怎么可能呢?
这不是第一次发生.上次我最终重新安装节点(尝试了很多不同的东西后).我宁愿找到解决方案,所以我能理解这个问题!
注意:原始代码包括socket.io和其他类型的连接,但我只是粘贴了应用程序被卡住的代码片段.
了解如何调试问题也很有用!
我即将开始开发一款教育性的视频游戏.我已经决定以一种我可以轻松打包为Web,Mobiles和可能的Standalone版本的方式来实现这一目标.
我不想使用Flash.因此,我确信(无论如何我会听取建议)使用JavaScript和SVG.
我正在对这个问题进行大量研究,但我很难把各个部分放在一起.我知道Raphaels似乎简单明了,而Jquery和Dojo可能更复杂但更强大.可以结合差异框架吗?我不介意复杂性,我希望尽可能减少限制
我需要的框架包括以下几点:
我也想知道是否可以混合使用不同的框架.
我愿意接受各种建议.我也开始学习Python了,所以我很高兴有一个专家意见,是否建议使用JavaScript与SVG,或者是否值得在这个目的上使用更复杂的语言.
谢谢!!
编辑
到现在为止我决定不使用Jquery.由于我需要一个可重用的代码,我将利用JavaScript的OOP功能,看起来mootools做得更好(http://jqueryvsmootools.com/index.html).对于管理SVG,我将尝试使用Raphael.有关使用这些框架的经验吗?
我遇到的问题是我所在的服务器无法访问防火墙。我在任务requests
中使用模块celery
。
我需要从另一台服务器获取一组图像。该服务器正在侦听port 8080
. 所以,如果我尝试通过这样做来获取图像:
requests.get('http://SERVERIP:8080/blabla/img.jpg', stream=True)
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
HTTPConnectionPool(host='SERVERIP', port=8080): Max retries exceeded with url:
/blabla/img.jpg (Caused by <class 'socket.error'>: [Errno 110] Connection timed out)
Run Code Online (Sandbox Code Playgroud)
但如果尝试从其他来源获取图像,例如:
requests.get('http://OTHERSERVERIP/blabla/img.jpg', stream=True)
Run Code Online (Sandbox Code Playgroud)
不是具有图像的服务器的问题,因为我已经从其他服务器尝试过并且它有效。问题(我几乎可以肯定)是 requests 库试图使用 url (8080) 中的端口作为地址源来获取图像。如果远程主机 url 请求中的端口不明确,请对地址源和远程主机使用端口 80,并且一切正常。
关于如何强制库在所有情况下使用 por 80 (在地址源上,意味着传出连接,发出请求的服务器用来侦听的端口)有什么想法吗?
正如 Kroolik 的评论所说: OP 希望将 tcp 套接字绑定到本地主机上的端口 80,并使用该套接字向其他服务器发送 http 请求
编辑
在我读完所有评论后,我想我可能不理解这个问题。最基本的情况是,如果尝试访问侦听端口 80 或 443 以外的任何 URL,我会收到错误,并且我需要连接到侦听端口 8080 的应用程序的 URL。此时我已经解决了更改其他服务器上的一些内容的问题,但我真的很想了解这里的问题是什么!谢谢!
无论我在哪里搜索,他们都说python词典没有任何顺序.当我运行代码1时,每次显示不同的输出(随机顺序).但是当我运行代码2时,它总是显示相同的排序输出.为什么字典在第二个片段中排序?
#code 1
d = {'one': 1, 'two': 2, 'three': 3, 'four': 4}
for a, b in d.items():
print(a, b)
#code 2
d = {1: 10, 2: 20, 3: 30, 4: 40}
for a, b in d.items():
print(a, b)
Run Code Online (Sandbox Code Playgroud)
输出
代码1:
four 4
two 2
three 3
one 1
Run Code Online (Sandbox Code Playgroud)
代码1:
three 3
one 1
two 2
four 4
Run Code Online (Sandbox Code Playgroud)
代码2(总是):
1 10
2 20
3 30
4 40
Run Code Online (Sandbox Code Playgroud)