标签: line

逐行处理非常大(> 20GB)的文本文件

我有一些非常大的文本文件需要处理,最大的是大约60GB.

每行在七个字段中有54个字符,我想从前三个字段中删除最后三个字符 - 这应该将文件大小减少大约20%.

我是Python的新手,并且有一个代码可以按照每小时大约3.4 GB的速度完成我想做的事情,但是我需要获得至少10 GB /小时的有价值的练习 - 有没有办法加速这个?这段代码并没有接近挑战我的处理器,所以我做了一个没有受过教育的猜测,它受到内部硬盘读写速度的限制?

def ProcessLargeTextFile():
    r = open("filepath", "r")
    w = open("filepath", "w")
    l = r.readline()
    while l:
        x = l.split(' ')[0]
        y = l.split(' ')[1]
        z = l.split(' ')[2]
        w.write(l.replace(x,x[:-3]).replace(y,y[:-3]).replace(z,z[:-3]))
        l = r.readline()
    r.close()
    w.close()
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感激.我在Windows 7上使用IDLE Python GUI并拥有16GB的内存 - 也许一个不同的操作系统会更有效率?

编辑:这是要处理的文件的摘录.

70700.642014 31207.277115 -0.054123 -1585 255 255 255
70512.301468 31227.990799 -0.255600 -1655 155 158 158
70515.727097 31223.828659 -0.066727 -1734 191 187 180
70566.756699 31217.065598 -0.205673 -1727 254 255 255
70566.695938 …
Run Code Online (Sandbox Code Playgroud)

python line

42
推荐指数
7
解决办法
5万
查看次数

如何在Python中计算两条线的交点?

我有两条线在一点交叉.我知道这两行的终点.如何计算Python中的交叉点?

# Given these endpoints
#line 1
A = [X, Y]
B = [X, Y]

#line 2
C = [X, Y]
D = [X, Y]

# Compute this:
point_of_intersection = [X, Y]
Run Code Online (Sandbox Code Playgroud)

python geometry line intersect

41
推荐指数
7
解决办法
8万
查看次数

在D3.js中绘制多条线

到目前为止,我一直在使用循环来为D3可视化添加线元素,但这似乎并不符合API的精神.

假设我有一些数据,

var data = {time: 1, value: 2, value2: 5, value3: 3,value4: 2},
           {time: 2, value: 4, value2: 9, value3: 2,value4: 4},
           {time: 3, value: 8, value2:12, value3: 2,value4:15}]);
Run Code Online (Sandbox Code Playgroud)

我想要四行,时间作为所有4的X.

我可以这样做:

var l = d3.svg.line()
        .x(function(d){return xScale(d[keys[0]]);})
        .y(function(d,i){
            return yScale(d[keys[1]]);})
        .interpolate("basis");
var l2 = d3.svg.line()
        .x(function(d){return xScale(d[keys[0]]);})
        .y(function(d,i){
            return yScale(d[keys[2]]);})
        .interpolate("basis");
var l3 = d3.svg.line()
        .x(function(d){return xScale(d[keys[0]]);})
        .y(function(d,i){
            return yScale(d[keys[3]]);})
        .interpolate("basis");  
var l4 = d3.svg.line()
        .x(function(d){return xScale(d[keys[0]]);})
        .y(function(d,i){
            return yScale(d[keys[4]]);})
        .interpolate("basis");
Run Code Online (Sandbox Code Playgroud)

然后逐个添加(或循环).

var line1 = group.selectAll("path.path1")
        .attr("d",l(data));
var line2 …
Run Code Online (Sandbox Code Playgroud)

line d3.js

39
推荐指数
1
解决办法
3万
查看次数

将每个数组元素添加到ruby中的文件行中

如果我有一个字符串数组,例如

a = ['a', 'b', 'c', 'd']
Run Code Online (Sandbox Code Playgroud)

并且我想将元素输出到每行一个文件(例如.txt).到目前为止,我有:

File.new("test.txt", "w+")
File.open("test.txt", "w+") do |i|
    i.write(a)
end
Run Code Online (Sandbox Code Playgroud)

这给了我test.txt文件的一行数组.如何迭代数组,将每个值添加到文件的新行?

ruby arrays file line output

38
推荐指数
3
解决办法
4万
查看次数

OpenGL ES iPhone - 绘制抗锯齿线

通常,你会使用类似的东西:

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);
glEnable(GL_LINE_SMOOTH);

glLineWidth(2.0f);

glVertexPointer(2, GL_FLOAT, 0, points);
glEnableClientState(GL_VERTEX_ARRAY);

glDrawArrays(GL_LINE_STRIP, 0, num_points);

glDisableClientState(GL_VERTEX_ARRAY);
Run Code Online (Sandbox Code Playgroud)

它在iPhone模拟器中看起来不错,但在iPhone上,线条变得非常薄,没有任何抗锯齿.

你如何在iPhone上获得AA?

iphone opengl-es line antialiasing

37
推荐指数
3
解决办法
4万
查看次数

如何在Bash中使用tail获取文件的最后一个非空行?

如何tail在Bash shell下使用最后一个非空行?

例如,my_file.txt看起来像这样:

你好
hola
bonjour
(空行)
(空行)

显然,如果我这样做,tail -n 1 my_file.txt我会得到一个空行.就我而言,我想得到bonjour.我怎么做?

bash tail line

34
推荐指数
4
解决办法
4万
查看次数

使用R从字符串中删除所有换行符(输入符号)

如何使用R从字符串中删除所有换行符(输入符号)?

我试过了gsub("\n", "", my_string),但它不起作用,因为换行和换行不相等.

谢谢!

r line break

34
推荐指数
2
解决办法
6万
查看次数

PowerShell获取大(大)文件的行数

从文件中获取行数的方法之一是PowerShell中的此方法:

PS C:\Users\Pranav\Desktop\PS_Test_Scripts> $a=Get-Content .\sub.ps1
PS C:\Users\Pranav\Desktop\PS_Test_Scripts> $a.count
34
PS C:\Users\Pranav\Desktop\PS_Test_Scripts> 
Run Code Online (Sandbox Code Playgroud)

但是,当我有一个800 MB的大文本文件时,如何在不读取整个文件的情况下从中获取行号?

上述方法将消耗太多RAM,导致脚本崩溃或完成时间过长.

powershell line

33
推荐指数
5
解决办法
5万
查看次数

hl-line-mode emacs颜色变化

Emacs的hl-line-mode正是我需要的,但我想改变它的可怕的黄色,任何人都知道我该怎么做?

emacs colors line cursor

32
推荐指数
2
解决办法
9434
查看次数

为什么画一条小于1.5像素的线的速度是画一条10像素厚的线的两倍?

我正在玩FireMonkey,看看图形绘画是否比GDI或Graphics32(我目前选择的库)更快.

为了看它有多快,我已经进行了一些测试,但我遇到了一些奇怪的行为:

与较粗的线条相比,绘制细线(<1.5像素宽)似乎非常慢: 性能

  • 垂直轴:cpu刻度绘制1000行
  • 横轴:线条刻度*

结果非常稳定; 一旦线宽超过1个像素宽,绘图总是变得更快.

在其他库中,似乎有单行快速算法,粗线较慢,因为首先创建了多边形,所以为什么FireMonkey反过来呢?

我主要需要单像素线,所以我应该以不同的方式画线?

测试使用以下代码运行:

// draw random lines, and copy result to clipboard, to paste in excel
procedure TForm5.PaintBox1Paint(Sender: TObject; Canvas: TCanvas);
var
  i,iWidth:Integer;
  p1,p2: TPointF;
  sw:TStopWatch;
const
  cLineCount=1000;
begin
  Memo1.Lines.Clear;
  // draw 1000 different widths, from tickness 0.01 to 10
  for iWidth := 1 to 1000 do
  begin
    Caption := IntToStr(iWidth);
    Canvas.BeginScene;
    Canvas.Clear(claLightgray);
    Canvas.Stroke.Kind := TBrushKind.bkSolid;
    Canvas.Stroke.Color := $55000000;
    Canvas.StrokeThickness :=iWidth/100;
    sw := sw.StartNew;
    // draw 1000 random lines
    for I := …
Run Code Online (Sandbox Code Playgroud)

delphi graphics performance line firemonkey

32
推荐指数
2
解决办法
4321
查看次数