Как пройти мимо этого значенияError: Нераспознанный символ O в строке формата? - PullRequest
0 голосов
/ 26 сентября 2019

Код, который я пишу, извлекает информацию из файла Excel.Записывает имена вниз и сохраняет их для создания массива с тем же именем, что и имя столбца.Затем он считает количество «нулевых» символов в списке и удаляет эти нули.Затем он печатает длину столбца данных, который будет нанесен на график, и создает другой массив со значениями оси X в диапазоне от 1 до len (столбец данных).После этого он создает график и перемещает его в нужную папку.

home = "C:\\Users\\Ishita\\Desktop\\Thesis2\\Raw Data\\Before merger\\"

def count_null(list1, num):
    count = 0
    for element in list1:
        if(element == num):
            count = count + 1
    print("count of null is: ", count)
    return count

def create_text_file(file_col_write, file_col):
    with open(file_col_write, "w") as f:
        for item in file_col:
            f.write(str(item) + "\n")
def plot_and_move(file_col_copy, file_col_write, location_save):
    location_save_plot = home + name_of_file + file_col_copy + ".png"
    plt.plot(x, file_col_copy, color="green")
    plt.xlabel("Days")
    plt.ylabel("Price")
    plt.savefig(location_save_plot, bbox_inches="tight")
    if os.path.exists(location_save_plot):
        print("File exists")
        if os.path.exists(location_save):
            print("Folder exists")
            shutil.move(location_save_plot, location_save)
            shutil.move(file_col_write, location_save)
        else:
            os.makedirs(location_save)
            print("Folder created")
            shutil.move(location_save_plot, location_save)
            shutil.move(file_col_write, location_save)
    plt.show()  
def create_array(file_col, j, file_col_copy):
      file_col = []
      for i in range(1, sheet.nrows):
          file_col.append(sheet.cell_value(i,j))
      #print(file_col)
      for i in range(count_null(file_col, "null")):
          file_col.remove("null")
      #print(file_col)
      file_col_write = home + file_col_copy + ".txt"
      create_text_file(file_col_write, file_col)
      print("file_col length: ",len(file_col))
      file_col_length = len(file_col)-1
      return file_col_length

import xlrd
import matplotlib.pyplot as plt
import os
import shutil


location = home + "testfile-532276.BO.xls"
name_of_file = location.split("\\")[-1]
name_of_file = name_of_file.split(".")[0] + name_of_file.split(".")[1]
print(name_of_file)

wb = xlrd.open_workbook(location) 
sheet = wb.sheet_by_index(0) 

print("Rows:", sheet.nrows)
print("Column:", sheet.ncols)
location_save = home + name_of_file

for j in range(1,5):
    file_col = sheet.cell_value(0,j)
    file_col_copy = sheet.cell_value(0,j)
    print(file_col)
    length = create_array(file_col, j, file_col_copy)    
    x = []
    for i in range(0, length+1):
        x.append(i)
    print("length of x:", len(x))
    #print("x:", x)
    file_col_write = home + file_col_copy + ".txt"
    plot_and_move(file_col_copy, file_col_write, location_save) 

Сообщение об ошибке Traceback (последний последний вызов):

Файл "", строка 1, в runfile ('C: /Users/Ishita/Desktop/Thesis2/copy-02.py', wdir = 'C: / Users / Ishita / Desktop / Thesis2')

Файл "C: \ Anaconda \ lib \ site-packages \ spyder_kernels \ customize \ spydercustomize.py", строка 827, в исполняемом файле исполняемого файла (имя файла, пространство имен)

Файл "C: \ Anaconda \ lib\ site-packages \ spyder_kernels \ customize \ spydercustomize.py ", строка 110, в execfile exec (compile (f.read (), filename, 'exec'), пространство имен)

Файл" C: / Users "/Ishita/Desktop/Thesis2/copy-02.py ", строка 86, в plot_and_move (file_col_copy, file_col_write, location_save)

Файл" C: /Users/Ishita/Desktop/Thesis2/copy-02.py", строка 25, в plot_and_move plt.plot (x, file_col_copy, color =" green ")

Файл" C: \ Anaconda \ lib \ site-packages \ matplotlib \ pyplot.py ", строка 2789,в сюжете нет никого другого {}), ** kwargs)

F"C: \ Anaconda \ lib \ site-packages \ matplotlib \ axes_axes.py", строка 1666, в строках сюжета = [* self._get_lines (* args, data = data, ** kwargs)]

Файл "C: \ Anaconda \ lib \ site-packages \ matplotlib \ axes_base.py", строка 225, в вызов выход из self._plot_args (this, kwargs)

File "C: \ Anaconda \ lib \ site-packages \ matplotlib \ axes_base.py ", строка 366, в линейном стиле _plot_args, маркер, color = _process_plot_format (tup [-1])

Файл" C: \ Anaconda \lib \ site-packages \ matplotlib \ axes_base.py ", строка 106, в _process_plot_format 'Нераспознанный символ% c в строке формата'% c)

ValueError: Нераспознанный символ O в строке формата

1 Ответ

0 голосов
/ 26 сентября 2019

Похоже, file_col_copy это строка.Функция plt.plot() ожидает аргументы во многих различных форматах, но обычно вы хотите передать plt.plot(x, y), где x и y - это массивы, а не строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...