将列表中的字符串写入CSV文件中的一个单元格.Python 2.7 Windows 7



是否可以将存储在列表中的字符串写入。csv文件到一个单元格中?

我有一个文件夹,里面有文件,我想把文件名写入一个csv文件。

文件夹:

    Data.txt
    Data2.txt
    Data3.txt
下面是我的代码:
    import csv
    import os
    index = -1 
    filename = []
    filelist = []
    filelist = os.listdir("dirname")
        f = csv.writer(open("output.csv", "ab"), delimiter=",", quotechar=" ", quoting=csv.QUOTE_MINIMAL)
    for file in filelist:
        if (len(filelist) + index) <0: 
            break
        filename = filelist[len(filelist)+index]
        index -= 1
        f.writerow(filename) 

我得到的输出是。csv文件中的每个单元格一个字母:

      A B C D E F G H I       
    1 D a t a . t x t
    2 D a t a 2 . t x t
    3 D a t a 3 . t x t 

期望的输出将在一个单元格中。csv文件应该有三行,单元格A1中有字符串"Data.txt",单元格B1中有字符串"Data2.txt",单元格C1中有字符串"Data3.txt":

      A          B
    1 Data.txt
    2 Data2.txt
    3 Data3.txt

这是可能的吗?如果你需要更多的信息,请告诉我。我目前在Windows 7上使用Python 2.7。

解决方案/纠正代码:

    import csv
    import os
    index = -1 
    filename = []
    filelist = []
    filelist = os.listdir("dirname")
        f = csv.writer(open("output.csv", "ab"), delimiter=",", quotechar=" ", quoting=csv.QUOTE_MINIMAL)
    for file in filelist:
        if (len(filelist) + index) <0: 
            break
        filename = filelist[len(filelist)+index]
        index -= 1
        f.writerow([filename]) #Need to send in a list of strings without the ',' as a delimiter since writerow expects a tuple/list of strings.

你可以这样做:

import csv
import os
filelist = os.listdir("dirname")  # Use a real directory
f = csv.writer(open("output.csv", 'ab'), delimiter=",", quotechar=" ", quoting=csv.QUOTE_MINIMAL)
for file_name in filelist:
    f.writerow([file_name])

Writerow需要一个序列,例如字符串列表。你给它一个字符串,然后它遍历它,导致你看到字符串的每个字母之间都有一个,

您也可以将每个句子/值放在一个列表中的一个单元格中,并将所有内部列表放在一个外部列表中。

像这样:

import csv
import os
list_ = [["value1"], ["value2"], ["value3"]]
with open('test.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    writer.writerows(list_)

相关内容

最新更新