Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用python编写csv_Python_Csv - Fatal编程技术网

用python编写csv

用python编写csv,python,csv,Python,Csv,我编写了一个python脚本,在该脚本中,我根据计算出的数字生成一个csv 我写的行是: writeRow = [str(t), len(c) , {k for k in c.keys()}, {k for k in c.values()}] 我有两个问题: t是一个可以以0开头的数字。但在这种情况下,0将被删除。 我尝试不使用str(),但它没有改变 这些集合在单元格中作为集合打印。但是,我想在同一个单元格中写这些数字,用逗号分隔,没有{}我怎么做 编辑 我正在使用csv模块;在代码中,我为

我编写了一个python脚本,在该脚本中,我根据计算出的数字生成一个csv

我写的行是:

writeRow = [str(t), len(c) , {k for k in c.keys()}, {k for k in c.values()}]
我有两个问题:

  • t
    是一个可以以0开头的数字。但在这种情况下,0将被删除。 我尝试不使用
    str()
    ,但它没有改变

  • 这些集合在单元格中作为集合打印。但是,我想在同一个单元格中写这些数字,用逗号分隔,没有
    {}
    我怎么做

  • 编辑

    我正在使用csv模块;在代码中,我为要写入的每一行创建列表,然后使用csv.writerow写入它们

    我将发布更多代码:

    from csv import reader, writer
    with open(fileName1) as inp, open(fileName2,'w') as o:
    
    然后定义reader、writer和变量t、c

    writeRow = [str(t), len(c) , {k for k in c.keys()}, {k for k in c.values()}]
    
    然后我将结果写入输出文件

    编辑 t的形式和一行应该是什么样子

    t=023 t=123 t是整数

    最后的一行应该如下所示:

    cell1  cell2         cell3       cell4 
    123    2     string1,string2    num1,num2
    

    string1和str2是dict键;num1、num2对应的值对于初学者,可以利用
    join()
    方法(假设键和值是字符串):


    这将处理逗号。但是,对于任何非平凡的数据,这将非常容易地被破坏,因此考虑使用模块,它将负责规避危险字符。

    初学者,可以利用<代码> Cuin()/<代码>方法(假设键和值是字符串):


    这将处理逗号。但是,对于任何非平凡的数据,这将非常容易地被破坏,所以请考虑使用模块来代替,它可以处理危险字符的逃逸。

    使用格式字符串的方法是什么?p>

    '%s,%i'%(t,c) 
    

    也许你想做什么就做什么。您还可以使用“%03i”或类似的方法在数字前生成一些填充零。或者,我可能误解了你的问题。尝试发布一个更完整(可运行)的示例。

    使用格式字符串怎么样

    '%s,%i'%(t,c) 
    

    也许你想做什么就做什么。您还可以使用“%03i”或类似的方法在数字前生成一些填充零。或者,我可能误解了你的问题。尝试发布一个更完整(可运行)的示例。

    使用字符串格式填充0,并连接集合:

    writeRow = ['{:0>3}'.format(t), len(c) , ','.join(c.keys()), ','.join(c.values())]
    
    请注意,您不应使用前导的
    0
    t
    输入值:

    >>>t = 023
    >>>t
    19
    

    对0填充使用字符串格式,对集合使用联接:

    writeRow = ['{:0>3}'.format(t), len(c) , ','.join(c.keys()), ','.join(c.values())]
    
    请注意,您不应使用前导的
    0
    t
    输入值:

    >>>t = 023
    >>>t
    19
    

    为什么不直接使用这个模块呢?实际上我就是这么做的。在代码中,我为要写入的每一行创建列表,然后使用csv.writerowPlease编写它们。请按您希望的方式发布一行。您是否必须为每行指定相同数量的列(
    len(c)
    )?CSV在其他方面不太适合。我认为您最好显示更多代码。我不知道你的第一点是什么意思
    t
    可以以零开始?什么是
    类型(t)
    ?是表示数字的
    str
    076
    应该是八进制吗
    076==62
    。为什么不直接使用模块呢?实际上我就是这么做的。在代码中,我为要写入的每一行创建列表,然后使用csv.writerowPlease编写它们。请按您希望的方式发布一行。您是否必须为每行指定相同数量的列(
    len(c)
    )?CSV在其他方面不太适合。我认为您最好显示更多代码。我不知道你的第一点是什么意思
    t
    可以以零开始?什么是
    类型(t)
    ?是表示数字的
    str
    076
    应该是八进制吗
    076==62
    。它在每个单元格d,i,c,t,u,k,e,y,s中返回,(键名称)它在每个单元格d,i,c,t,u,k,e,y,s中返回,(键名称)我认为我的问题不清楚(我用一个例子编辑了它)我认为我的问题不清楚(我用一个例子编辑了它)