标签: line-by-line

我如何逐行分析Python代码?

我一直在使用cProfile来分析我的代码,它一直很好用.我还使用gprof2dot.py来显示结果(使其更清晰).

但是,cProfile(以及到目前为止我见过的大多数其他Python分析器)似乎只在函数调用级别进行分析.当从不同的地方调用某些函数时,这会引起混淆 - 我不知道呼叫#1或呼叫#2是否占用了大部分时间.当所讨论的函数深度为六级时,这会变得更糟,从其他七个地方调用.

如何进行逐行分析?

而不是这个:

function #12, total time: 2.0s
Run Code Online (Sandbox Code Playgroud)

我想看到这样的事情:

function #12 (called from somefile.py:102) 0.5s
function #12 (called from main.py:12) 1.5s
Run Code Online (Sandbox Code Playgroud)

cProfile确实显示了总共有多少时间"转移"到父级,但是当你有一堆层和互连的调用时,这种连接又会丢失.

理想情况下,我希望有一个GUI来解析数据,然后向我显示我的源文件,每个行的总时间.像这样的东西:

main.py:

a = 1 # 0.0s
result = func(a) # 0.4s
c = 1000 # 0.0s
result = func(c) # 5.0s
Run Code Online (Sandbox Code Playgroud)

然后我就可以点击第二个"func(c)"调用来查看该调用中占用的时间,与"func(a)"调用分开.

那有意义吗?是否有任何分析库收集此类信息?我错过了一些很棒的工具吗?

python profiling line-by-line

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

Bash:逐行读取文件并将每个段作为参数处理到其他prog

我有一些肮脏的工作要做,所以Bash脚本似乎是一个不错的选择.我是Bash的新手,这种经历让我很沮丧.

文件mapfiles.txt由以下行组成.每条线有四个由白色空间隔开的段.每个段表示外部程序名称'prog'的输入参数.例如,"cm19_1.png"是文件名,"0001"是索引,"121422481"是经度,"31035995"是纬度.

文件:mapfiles.txt

cm19_1.png 0001 121422481 31035995
cm19_2.png 0002 121423224 31035995
cm19_3.png 0003 121423967 31035995
…
Run Code Online (Sandbox Code Playgroud)

我想对每一行执行类似的命令.如下所示,prog的输入参数顺序略有不同.所以编写一个bash脚本来处理重复的工作是有意义的.

[Usage] prog <index> <longitude> <latitude> <filename>
example: prog 0001 121422481 31035995 cm19_1.png
Run Code Online (Sandbox Code Playgroud)

通常,bash脚本将以这种方式运行:

  1. 从mapfiles.txt中读取一行
  2. 拆分细分
  3. 使用正确的参数顺序调用prog

这是run.sh.

#!/bin/sh

input=mapfiles.txt
cmd=prog

while read line
do
        file=$(echo $line | cut -d' ' -f1)
        key=$(echo $line | cut -d' ' -f2)
        log=$(echo $line | cut -d' ' -f3)
        lat=$(echo $line | cut -d' ' -f4)
        echo $cmd $key …
Run Code Online (Sandbox Code Playgroud)

parameters bash line-by-line

36
推荐指数
2
解决办法
8万
查看次数

如何从流中读取CSV文件并在写入时处理每一行?

我想从标准输入读取一个CSV文件并处理每一行.我的CSV输出代码逐个写入行,但我的读者在迭代行之前等待流终止.这是csv模块的限制吗?难道我做错了什么?

我的读者代码:

import csv
import sys
import time


reader = csv.reader(sys.stdin)
for row in reader:
    print "Read: (%s) %r" % (time.time(), row)
Run Code Online (Sandbox Code Playgroud)

我的作家代码:

import csv
import sys
import time


writer = csv.writer(sys.stdout)
for i in range(8):
    writer.writerow(["R%d" % i, "$" * (i+1)])
    sys.stdout.flush()
    time.sleep(0.5)
Run Code Online (Sandbox Code Playgroud)

产量python test_writer.py | python test_reader.py:

Read: (1309597426.3) ['R0', '$']
Read: (1309597426.3) ['R1', '$$']
Read: (1309597426.3) ['R2', '$$$']
Read: (1309597426.3) ['R3', '$$$$']
Read: (1309597426.3) ['R4', '$$$$$']
Read: (1309597426.3) ['R5', '$$$$$$']
Read: (1309597426.3) ['R6', …
Run Code Online (Sandbox Code Playgroud)

python csv stream line-by-line

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

如何使用Files.lines(...).forEach(...)读取文件?

我目前正在尝试从我拥有的纯文本文件中读取行.我发现另一个stackoverflow(用Java读取纯文本文件)你可以使用Files.lines(..).forEach(..)但是我实际上无法弄清楚如何使用for each函数来读取line by行文本,任何人都知道在哪里寻找或如何这样做?

java foreach file filereader line-by-line

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

如何使用ant脚本从文件中逐行读取数据?

在perl中,我们用来<FileDescriptor>从文件中读取数据.如何使用ant脚本执行相同操作.

ant file-io line-by-line

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

是否可以逐行调试bash脚本?

我会喜欢像Microsoft Visual Studio在bash中逐行调试的东西,当前的变量值等等.

有没有工具或方法可以做到这一点?set -x并且set -v很好但不完美.

debugging bash line-by-line

6
推荐指数
1
解决办法
2140
查看次数

Arduino逐行读取SD文件

我试图从连接到我的Arduino MEGA的SD卡上逐行读取文本文件"Print1.txt".到目前为止,我有以下代码:

#include <SD.h>
#include <SPI.h>
int linenumber = 0;
const int buffer_size = 54;
int bufferposition;
File printFile;
char character;
char Buffer[buffer_size];
boolean SDfound;


void setup()
{
  Serial.begin(9600);
  bufferposition = 0;
}

void loop() 
{
  if (SDfound == 0)
  {
    if (!SD.begin(53)) 
    {
      Serial.print("The SD card cannot be found");
      while(1);
    }
  }
  SDfound = 1;
  printFile = SD.open("Part1.txt");


  if (!printFile)
  {
    Serial.print("The text file cannot be opened");
    while(1);
  }

  while (printFile.available() > 0)
  {
    character = printFile.read();
    if (bufferposition …
Run Code Online (Sandbox Code Playgroud)

c++ arduino sd-card readfile line-by-line

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

git smart line和单词差异

我想git diff将常规逐行diff与结合在一起git diff --word-diff。逐行比较的问题在于,如果我更改一个或两个单词并使该行基本保持原样,则它们是不必要的-分块过于粗糙。另一方面,如果我改变整行并使用--word-diff,有时diff算法将变得混乱并吐出令人难以置信的diff,插入和删除了大量单词以将一行“变形”为另一行。

是否有一种方法可以指定git应该对此明智的方法,并且仅--word-diff在这样做确实有意义时(当然,逐行)?

regex git diff line-by-line word-diff

5
推荐指数
1
解决办法
984
查看次数

nodejs 逐行读取文件并在最后获取其内容

我想使用 nodejs 逐行读取文件,然后在完成时将返回的结果作为 json 字符串获取。我试图这样做,但最后 console.log 打印 undefined 而不是列表。我得到了 Promise 的列表和结尾,但是如何将它返回给 main.js 中的调用函数?

我有我的 main.js 文件:

var fct = require('./romlist-parser');

console.log(fct.myfunction());
Run Code Online (Sandbox Code Playgroud)

并且 romlist-parser.js 具有以下内容:

var fs = require('fs');
var readline = require('readline');

exports.myfunction = function() {

    var promise = new Promise(function(resolve,reject) {
        var rd = readline.createInterface({
            input: fs.createReadStream('Atari 2600.txt'),
            console: false
        });

        var games = [];

        rd.on('line', function(line) {
            var arr = line.split(";");
            games.push({name:arr[0], title:arr[1]});
        });

        rd.on('close', function() {
            var json = JSON.stringify(games);
            resolve(games);
        });

    });

    promise.then((resolveResult) => {
        console.log(resolveResult); …
Run Code Online (Sandbox Code Playgroud)

filereader node.js promise line-by-line es6-promise

5
推荐指数
1
解决办法
8150
查看次数

如何使用 CSV Helper 在 C# 中逐行读取?

所以这是我目前使用的代码,但我并不特别想创建自己的阅读器。我的问题是我想逐行读取一个完整的 csv 文件,但文件内容会不时发生变化,所以它必须是通用的。

这是我目前使用的

try
{
    var Lines = File.ReadAllLines(path);
    var csvRawData = from line in Lines select (line.Split(',')).ToArray();
    var csvData = csvRawData.ToList();
    return csvData;
}
catch (Exception ex)
{                
    MessageBox.Show(ex.Message);
    Logger.Log(ex.Message, true);
    return null;
}
Run Code Online (Sandbox Code Playgroud)

返回的 csvData 是 List 类型。然后我只是手动将内容从中分离出来。

.net c# csv line-by-line csvhelper

5
推荐指数
1
解决办法
5387
查看次数