Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.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,#这里我想要if条件检查它是否是行的最后一个元素,并添加“,” #如果条件是每行的最后一个元素不添加“,” 如果您不能使用csv模块,join将是您在此的朋友: fw.write("\n") fw.close() f.close() 但您应该首先去掉行尾字符: for counter in range(length): fw.write(','.join(x[counter] for x in (item.split(',') for item in

#这里我想要if条件检查它是否是行的最后一个元素,并添加“,”

  • #如果条件是每行的最后一个元素不添加“,”


  • 如果您不能使用
    csv
    模块,
    join
    将是您在此的朋友:

        fw.write("\n")
    fw.close() 
    f.close()
    
    但您应该首先去掉行尾字符:

    for counter in range(length):
        fw.write(','.join(x[counter] for x in (item.split(',') for item in lst)))
        fw.write('\n')
    
    但是,您的代码既不是Pythonic,也不是高效的

    在计数器的每次迭代中拆分相同的字符串,而在读取时可以拆分一次。接下来,对于迭代文本文件的行,Pythonic方法是迭代该文件。最后,
    确保文件将在块结束时正确关闭。您的代码可能会变成:

    a=f.readline().strip()
    length=len(a.split(","))
    fw=open('output.csv', 'w')
    lst = []
    while a: 
       lst.append(a)
       a=f.readline().strip()
    

    您是否有理由不使用csv模块?是的,我不能使用模块和熊猫转置。我已将列转换为行,但它在每个元素后都添加了逗号,我不希望在每行的最后一个元素中,
    csv
    模块与Pandas不同,是标准库的一部分。
    for counter in range(length):
        fw.write(','.join(x[counter] for x in (item.split(',') for item in lst)))
        fw.write('\n')
    
    a=f.readline().strip()
    length=len(a.split(","))
    fw=open('output.csv', 'w')
    lst = []
    while a: 
       lst.append(a)
       a=f.readline().strip()
    
    with open('students.csv', 'r')  as f, open('output.csv', 'w') as fw
        lst = [a.strip().split(',') for a in f]
        counter = len(lst[0])
        for counter in range(length):
            fw.write(','.join(x[counter] for x in (item for item in lst)))
            fw.write('\n')