标签: file-read

如何在Python中逐行读取大文件

我想迭代整个文件的每一行.一种方法是通过读取整个文件,将其保存到列表中,然后浏览感兴趣的行.这种方法使用了大量内存,所以我正在寻找替代方案.

我的代码到目前为止:

for each_line in fileinput.input(input_file):
    do_something(each_line)

    for each_line_again in fileinput.input(input_file):
        do_something(each_line_again)
Run Code Online (Sandbox Code Playgroud)

执行此代码会显示错误消息:device active.

有什么建议?

目的是计算成对的字符串相似性,意味着对于文件中的每一行,我想与每隔一行计算Levenshtein距离.

python file-read

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

我们如何在golang中将json文件作为json对象读取

我有一个存储在本地计算机上的JSON文件.我需要在变量中读取它并循环遍历它以获取JSON对象值.如果我在使用ioutil.Readfile方法读取文件后使用Marshal命令,它会将一些数字作为输出.这是我的几次尝试失败,

尝试1:

plan, _ := ioutil.ReadFile(filename) // filename is the JSON file to read
var data interface{}
err := json.Unmarshal(plan, data)
if err != nil {
        log.Error("Cannot unmarshal the json ", err)
      }
fmt.Println(data)
Run Code Online (Sandbox Code Playgroud)

它给了我以下错误,

time="2016-12-13T22:13:05-08:00" level=error msg="Cannot unmarshal the json json: Unmarshal(nil)"
<nil>
Run Code Online (Sandbox Code Playgroud)

尝试2:我尝试将JSON值存储在结构中,然后使用MarshalIndent

generatePlan, _ := json.MarshalIndent(plan, "", " ") // plan is a pointer to a struct
fmt.Println(string(generatePlan))
Run Code Online (Sandbox Code Playgroud)

它给我输出字符串.但是如果我将输出转换为字符串,那么我将无法将其作为JSON对象循环.

我们如何在golang中将JSON文件作为JSON对象读取?有可能吗?任何帮助表示赞赏.提前致谢!

json go file-read

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

如何使用C从下往上读取行?

我需要从下到上读取文件中列出的数字.我怎么能用C做到这一点?

该文件如下:

4.32
5.32
1.234
0.123
9.3
6.56
8.77
Run Code Online (Sandbox Code Playgroud)

例如,我想阅读最后三个数字.他们必须是float类型.

8.77
6.56
9.3
Run Code Online (Sandbox Code Playgroud)

PS.:实际上我需要一个使用fseek等播放文件指针位置的解决方案.

c file-read

14
推荐指数
2
解决办法
2174
查看次数

使用fgets从文件读取

我正在阅读格式文件

1 32 43 23
32 43
123 43 54 243 
123 2222
2
Run Code Online (Sandbox Code Playgroud)

这是我的代码片段.

string[100];
while(!feof(fp))
    fgets(string,100,fp)
Run Code Online (Sandbox Code Playgroud)

现在,当我把每一个字符串放在最后一个字符串中时,我会得到重复和一些更多的歧义(比如其他东西也会被打印出来说是123左右).

如何解决这个问题呢?

c fgets file-read

12
推荐指数
2
解决办法
7万
查看次数

Java读取长文本文件非常慢

我有一个文本文件(使用XStream创建的XML),长度为63000行(3.5 MB).我正在尝试使用Buffered reader阅读它:

                BufferedReader br = new BufferedReader(new FileReader(file));
                try {
                    String s = "";
                    String tempString;
                    int i = 0;
                    while ((tempString = br.readLine()) != null) {
                        s = s.concat(tempString);
//                        s=s+tempString;
                        i = i + 1;
                        if (i % 1000 == 0) {
                            System.out.println(Integer.toString(i));
                        }
                    }
                    br.close();
Run Code Online (Sandbox Code Playgroud)

在这里,您可以看到我尝试测量阅读速度.它非常低.在10000行之后读取1000行需要几秒钟.我显然做错了什么,但无法理解什么.在此先感谢您的帮助.

java file-io file-read bufferedreader

10
推荐指数
1
解决办法
4279
查看次数

读数字作为字符串

我是R编程的新手,我想在R中读取一个文本文件.

其中一列,让我们说第7列是数字,每个数字代表一个ID,我希望R读取数字,好像它们是字符串一样.并计算每个ID出现在文件中的次数(以便稍后我可以将每个ID的频率分配给给定的ID供以后使用)我试过了

mydata<-(read.table(filename.txt))
ID=mydata[7]
freq=table(ID)
Run Code Online (Sandbox Code Playgroud)

这有效,但它将ID作为数字.现在我试过了

freq=table(as.character(ID))
Run Code Online (Sandbox Code Playgroud)

但是它将整个列ID作为一个字符串并从中获取

summary(freq)
Run Code Online (Sandbox Code Playgroud)

我明白了

Number of cases in table: 1 
Number of factors: 1 
Run Code Online (Sandbox Code Playgroud)

r file file-read formal-languages

9
推荐指数
3
解决办法
2万
查看次数

我应该使用哪个函数将非结构化文本文件读入R?

这是我在这里的第一个问题,我是R的新手,试图找出我如何进行数据处理的第一步,请保持简单:)

我想知道在R中加载非结构化文本数据以进行进一步处理的最佳功能和有用的数据结构是什么.例如,假设我将一本书存储为文本文件,其中没有新的行字符.

read.delim()在列表中使用和存储数据是一个好主意吗?或者是一个更好的角色向量,我将如何定义它?

先感谢您.

PN

PS如果我使用"." 作为我的界限,它会对待像"先生"这样的事情 作为一个单独的句子.虽然这只是一个例子而且我并不关心这个缺陷,仅仅是出于教育目的,我仍然很好奇你是如何解决这个问题的.

text-processing r file-read readlines

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

从Julia中的文本文件中读取数据矩阵

我有包含矩阵的文本文件.我想把它作为矩阵在朱莉娅中阅读.

文本文件如下:

0 0 0 0 0 0 0
1 0 0 0 0 0 0
1 0 0 0 0 0 1
1 0 0 0 1 1 0
Run Code Online (Sandbox Code Playgroud)

在matlab中,您可以执行以下操作来创建矩阵M:

file='name.txt';
[M] = load(file);
Run Code Online (Sandbox Code Playgroud)

如何在朱莉娅做同样的事情?

input matrix file-read julia

9
推荐指数
1
解决办法
6285
查看次数

在多线程应用程序中读取最快的文件

我必须将8192x8192矩阵读入内存.我想尽快做到这一点.
现在我有这个结构:

char inputFile[8192][8192*4]; // I know the numbers are at max 3 digits
int8_t matrix[8192][8192]; // Matrix to be populated

// Read entire file line by line using fgets
while (fgets (inputFile[lineNum++], MAXCOLS, fp));

//Populate the matrix in parallel, 
for (t = 0; t < NUM_THREADS; t++){
    pthread_create(&threads[t], NULL, ParallelRead, (void *)t);
}
Run Code Online (Sandbox Code Playgroud)

在函数中ParallelRead,我解析每一行,执行atoi并填充矩阵.并行性是线性的,就像线程t解析行一样t, t+ 1 * NUM_THREADS..

在具有2个线程的双核系统上,这需要

Loading big file (fgets) : 5.79126
Preprocessing data (Parallel Read) : 4.44083
Run Code Online (Sandbox Code Playgroud)

有没有办法进一步优化这个?

c++ multithreading file-read

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

在C中读取和打印.txt文件行的最清晰方法

有很多方法描述如何使用各种方法在此站点上打印文本文件的行:

它们似乎都是根据具体的例子量身定制的.

如果能够使用最清晰,最简洁,最简单的方法,那就太棒了:将任何文本文件的每一行打印到屏幕上.优选地详细说明每条线的作用.

简洁明了的要点.

c file-io printf scanf file-read

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