Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.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_Excel_Csv_Xlrd_Scrape - Fatal编程技术网

Python 将变量输出写入CSV中的特定列?

Python 将变量输出写入CSV中的特定列?,python,excel,csv,xlrd,scrape,Python,Excel,Csv,Xlrd,Scrape,我正在编写一个Python脚本,它从Excel文档中提取数据,然后将输出写入.csv 我能够获取数据并将其写入.csv,但所有数据都进入第一列 我需要条形图数据进入第4列,foo进入第5列,因此我尝试使用csv.reader选择行,该行运行时没有错误,但实际上没有写入.csv文件 这是我的密码: import xlrd import csv ###Grab the data def get_row_values(workSheet, row): to_return = []

我正在编写一个Python脚本,它从Excel文档中提取数据,然后将输出写入.csv

我能够获取数据并将其写入.csv,但所有数据都进入第一列

我需要条形图数据进入第4列,foo进入第5列,因此我尝试使用csv.reader选择行,该行运行时没有错误,但实际上没有写入.csv文件

这是我的密码:

 import xlrd
 import csv

 ###Grab the data 
 def get_row_values(workSheet, row):
     to_return = []
     num_cells = myWorksheet.ncols - 1
     curr_cell = -1
     while curr_cell < num_cells:
         curr_cell += 1
         cell_value = myWorksheet.cell_value(row, curr_cell)
         to_return.append(cell_value)
     return to_return

 file_path = 'map_test.xlsx'
 output = []
 output_bar = []
 output_foo = []

 myWorkbook = xlrd.open_workbook(file_path)
 myWorksheet = myWorkbook.sheet_by_name('Sheet1')
 num_rows = myWorksheet.nrows - 1
 curr_row = 0
 column_names = get_row_values(myWorksheet, curr_row)
 print len(column_names)
 while curr_row < num_rows:
        curr_row += 1 
        row = myWorksheet.row(curr_row)
        this_row = get_row_values(myWorksheet, curr_row)
        x = 0
        while x <len(this_row):
            if this_row[x] == 'x':
                    output.append([this_row[0], column_names[x]])
                    output_bar.append([column_names[x]]) 
                    output_foo.append([this_row[0]])
                    print output
                    myData = [["number", "name", "version", "bar", 
 "foo"]]

                    ##### Next section is the code in question, it 
 ####doesn't error out, but won't write to the .csv######

                myFile = open("test123.csv", "w")
                writer = csv.writer(myFile)
                with open('test123.csv', 'r') as csvfile:
                    reader = csv.reader(csvfile, delimiter=',')
                    for row in reader:
                        row[5] = myFile.readline()
                        writer.writerows(output_foo)
                        row[4] = myFile.readline()
                        writer.writerows(outpu_bar)

                        #####This successfully writes to the csv, but      
 #####all data to first column#####

    #           myFile = open('test123.csv', 'w')
    #           with myFile:
    #                   writer = csv.writer(myFile)
    #                   writer.writerows(myData)
    #                   #writer.writerows(output)
    #                   writer.writerows(output_foo)
    #                   writer.writerows(output_bar)

            x += 1

 print ("CSV Written")

你的代码有点混乱。。。但这是一个老帖子,也许你已经解决了各种问题。无论如何,您在同一时刻打开以读取和写入同一文件,这很糟糕,而且您似乎每次都打开csv!您在xlsx文件中读取了一行,这也很糟糕。在我看来,您想要的是将xlsx中的数据合并到现有的csv中,在这种情况下,您必须按顺序执行4项任务:① 从xlsx读取数据② 从csv读取数据③ 合并数据④ 将数据写入csv。告诉我你是否能解决你的问题或者你需要进一步的帮助。这很有道理,谢谢你的帖子。我已经解决了这个问题,但仍然从你的评论中学到了一些东西。