标签: csv

如何在Bash中解析CSV文件?

我正在研究一个很长的Bash脚本.我想将CSV文件中的单元格读入Bash变量.我可以解析行和第一列,但不能解析任何其他列.到目前为止,这是我的代码:


  cat myfile.csv|while read line
  do
    read -d, col1 col2 < <(echo $line)
    echo "I got:$col1|$col2"
  done
Run Code Online (Sandbox Code Playgroud)

它只打印第一列.作为额外的测试,我尝试了以下内容:

read -d, x y < <(echo a,b,)

并且$ y是空的.所以我尝试过:

read x y < <(echo a b)

$ y是b.为什么?

linux csv bash

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

如何将tsv文件加载到Pandas DataFrame中?

我是python和pandas的新手.我正在尝试将tsv文件加载到熊猫中DataFrame.

这就是我正在尝试的错误和我得到的错误:

>>> df1 = DataFrame(csv.reader(open('c:/~/trainSetRel3.txt'), delimiter='\t'))

Traceback (most recent call last):
  File "<pyshell#28>", line 1, in <module>
    df1 = DataFrame(csv.reader(open('c:/~/trainSetRel3.txt'), delimiter='\t'))
  File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 318, in __init__
    raise PandasError('DataFrame constructor not properly called!')
PandasError: DataFrame constructor not properly called!
Run Code Online (Sandbox Code Playgroud)

python csv pandas

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

库建议:NodeJs读取csv文件

使用nodejs,我想解析10000个记录的.csv文件,并对每一行进行一些操作.我尝试使用http://www.adaltas.com/projects/node-csv.我不能让它在每一行停下来.这只是读取所有10000条记录.我需要做以下事情

  1. 逐行读取csv
  2. 在每一行上执行耗时的操作
  3. 转到下一行

任何人都可以在这里建议任何其他想法?

csv node.js

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

在命令行上将XLS转换为CSV

如何在Windows命令行上将XLS文件转换为CSV文件.

该计算机已安装Microsoft Office 2000.如果不能使用Microsoft Office,我愿意安装OpenOffice.

windows csv excel

97
推荐指数
8
解决办法
24万
查看次数

如何将数据写入csv格式为字符串(而不是文件)?

我想将数据[1,2,'a','He said "what do you mean?"']转换为csv格式的字符串.

通常人们可以使用csv.writer()它,因为它处理所有疯狂的边缘情况(逗号转义,引用标记转义,CSV方言等).捕获是csv.writer()期望输出到文件对象,而不是字符串.

我目前的解决方案是这个有点hacky函数:

def CSV_String_Writeline(data):
    class Dummy_Writer:
        def write(self,instring):
            self.outstring = instring.strip("\r\n")
    dw = Dummy_Writer()
    csv_w = csv.writer( dw )
    csv_w.writerow(data)
    return dw.outstring
Run Code Online (Sandbox Code Playgroud)

任何人都可以提供更优雅的解决方案,仍能很好地处理边缘情况吗?

编辑:这是我最终如何做到这一点:

def csv2string(data):
    si = StringIO.StringIO()
    cw = csv.writer(si)
    cw.writerow(data)
    return si.getvalue().strip('\r\n')
Run Code Online (Sandbox Code Playgroud)

python csv string

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

如何拆分列可能包含的csv,

特定

2,1016,7 /二千○八分之三十一14:22,杰夫达尔加斯6 /二千零十一分之五22:21,http://stackoverflow.com, "科瓦利斯,OR",7679,351,81,b437f461b3fd27387c5d8ab47a293d35,34

如何使用C#将上述信息拆分为字符串,如下所示:

2
1016
7/31/2008 14:22
Geoff Dalgas
6/5/2011 22:21
http://stackoverflow.com
Corvallis, OR
7679
351
81
b437f461b3fd27387c5d8ab47a293d35
34
Run Code Online (Sandbox Code Playgroud)

如您所见,其中一列包含,<=(Corvallis,OR)

// update //基于 C#Regex Split - 引号外的逗号

string[] result = Regex.Split(samplestring, ",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)");
Run Code Online (Sandbox Code Playgroud)

.net c# csv

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

阅读一个巨大的.csv文件

我目前正在尝试从Python 2.7中的.csv文件读取数据,最多包含100万行和200列(文件范围从100mb到1.6gb).对于300,000行以下的文件,我可以(非常慢)地执行此操作,但是一旦我超过该值,我就会出现内存错误.我的代码看起来像这样:

def getdata(filename, criteria):
    data=[]
    for criterion in criteria:
        data.append(getstuff(filename, criteron))
    return data

def getstuff(filename, criterion):
    import csv
    data=[]
    with open(filename, "rb") as csvfile:
        datareader=csv.reader(csvfile)
        for row in datareader: 
            if row[3]=="column header":
                data.append(row)
            elif len(data)<2 and row[3]!=criterion:
                pass
            elif row[3]==criterion:
                data.append(row)
            else:
                return data
Run Code Online (Sandbox Code Playgroud)

getstuff函数中else子句的原因是所有符合条件的元素都将在csv文件中一起列出,所以当我越过它们时我会离开循环以节省时间.

我的问题是:

  1. 如何才能让这个与更大的文件一起使用?

  2. 有什么方法可以让它更快吗?

我的电脑有8GB RAM,运行64位Windows 7,处理器是3.40 GHz(不确定你需要什么信息).

非常感谢您的帮助!

python csv file python-2.7

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

如何提取csv文件的一列

如果我有一个csv文件,是否有快速bash方式打印出任何单个列的内容?可以安全地假设每行具有相同的列数,但每列的内容将具有不同的长度.

csv bash extract

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

使用Spark加载CSV文件

我是Spark的新手,我正在尝试使用Spark从文件中读取CSV数据.这就是我在做的事情:

sc.textFile('file.csv')
    .map(lambda line: (line.split(',')[0], line.split(',')[1]))
    .collect()
Run Code Online (Sandbox Code Playgroud)

我希望这个调用能给我一个我文件的两个第一列的列表,但是我收到了这个错误:

File "<ipython-input-60-73ea98550983>", line 1, in <lambda>
IndexError: list index out of range
Run Code Online (Sandbox Code Playgroud)

虽然我的CSV文件不止一列.

python csv apache-spark pyspark

95
推荐指数
10
解决办法
24万
查看次数

PHP数组到CSV

我正在尝试将一系列产品转换为CSV文件,但似乎没有计划.CSV文件是一个长行,这是我的代码:

for($i=0;$i<count($prods);$i++) {
$sql = "SELECT * FROM products WHERE id = '".$prods[$i]."'";
$result = $mysqli->query($sql);
$info = $result->fetch_array(); 
}

$header = '';

for($i=0;$i<count($info);$i++)  
  {
    $row = $info[$i];

    $line = '';
    for($b=0;$b<count($row);$b++)
    { 
    $value = $row[$b];                                      
        if ( ( !isset( $value ) ) || ( $value == "" ) )
        {
            $value = "\t";
        }
        else
        {
            $value = str_replace( '"' , '""' , $value );
            $value = '"' . $value . '"' . "\t";
        }
         $line .= $value;
        } …
Run Code Online (Sandbox Code Playgroud)

php csv

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

标签 统计

csv ×10

python ×4

bash ×2

.net ×1

apache-spark ×1

c# ×1

excel ×1

extract ×1

file ×1

linux ×1

node.js ×1

pandas ×1

php ×1

pyspark ×1

python-2.7 ×1

string ×1

windows ×1