吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1514|回复: 2
收起左侧

[已解决] 请大佬看看这为什么pycharm报错'function' object has no attribute 'copy'

[复制链接]
qianaonan 发表于 2021-10-8 22:12
利用copy函数生成新的excel文件,但不知道为啥会报错
date = copy.copy(rd_book)
AttributeError: 'function' object has no attribute 'copy'

说函数没有copy属性,但是这只是我利用tk导入的文件目录,然后并想将该文件复制成新的excel文件从而不对源文件进行编辑,这个应该怎么解决?请大佬帮忙忙看看!
python新手写码,有点乱请多多包涵。

[Python] 纯文本查看 复制代码
# -*- coding:utf-8 -*-
import wx
import os
import re
import xlrd
import xlwt
from xlutils.copy import copy
import tkinter
from tkinter import filedialog


class Frame(wx.Frame):
        root = tkinter.Tk()
        root.withdraw()
        global ml
        ml = filedialog.askopenfilename(initialdir='C:', title="请选择xls文件")
        def __init__(self):
            wx.Frame.__init__(self, None, title='', size=(536, 488),name='frame',style=541072384)
            self.启动窗口 = wx.Panel(self)
            self.Centre()
            self.标签2 = wx.StaticText(self.启动窗口, size=(59, 37), pos=(12, 15), label='销售:', name='staticText', style=2304)
            标签2_字体 = wx.Font(11, 74, 90, 400, False, 'Microsoft YaHei UI', -1)
            self.标签2.SetFont(标签2_字体)
            self.编辑框2 = wx.TextCtrl(self.启动窗口, size=(159, 37), pos=(67, 14), value='', name='xs1', style=0)
            编辑框2_字体 = wx.Font(11, 74, 90, 400, False, 'Microsoft YaHei UI', -1)
            self.编辑框2.SetFont(编辑框2_字体)
            self.编辑框3 = wx.TextCtrl(self.启动窗口, size=(162, 37), pos=(236, 14), value='', name='xs2', style=0)
            编辑框3_字体 = wx.Font(11, 74, 90, 400, False, 'Microsoft YaHei UI', -1)
            self.编辑框3.SetFont(编辑框3_字体)
            self.标签3 = wx.StaticText(self.启动窗口, size=(51, 24), pos=(15, 99), label='客流:', name='staticText', style=2304)
            标签3_字体 = wx.Font(11, 74, 90, 400, False, 'Microsoft YaHei UI', -1)
            self.标签3.SetFont(标签3_字体)
            self.编辑框4 = wx.TextCtrl(self.启动窗口, size=(331, 163), pos=(67, 57), value='', name='kl', style=1073741856)
            编辑框4_字体 = wx.Font(11, 74, 90, 400, False, 'Microsoft YaHei UI', -1)
            self.编辑框4.SetFont(编辑框4_字体)
            self.编辑框5 = wx.TextCtrl(self.启动窗口, size=(331, 204), pos=(67, 228), value='', name='jh', style=1073741856)
            编辑框5_字体 = wx.Font(11, 74, 90, 400, False, 'Microsoft YaHei UI', -1)
            self.编辑框5.SetFont(编辑框5_字体)
            self.按钮2 = wx.Button(self.启动窗口, size=(80, 32), pos=(420, 391), label='生成', name='button')
            self.按钮2.Bind(wx.EVT_BUTTON, self.按钮2_按钮被单击)
            self.标签5 = wx.StaticText(self.启动窗口, size=(46, 24), pos=(11, 298), label='计划:', name='staticText',
                                     style=2304)
            标签5_字体 = wx.Font(11, 74, 90, 400, False, 'Microsoft YaHei UI', -1)
            self.标签5.SetFont(标签5_字体)

        def 按钮2_按钮被单击(self,event):
            xs1 = self.编辑框2.GetValue()
            xs2 = self.编辑框3.GetValue()
            kl = self.编辑框4.GetValue()
            zdgz = self.编辑框5.GetValue()
            qdxs1 = xs1.replace(',', '')
            qdxs2 = xs2.replace(',', '')
            a=round((float(qdxs1)+float(qdxs2))/10000,2)#销售
            n1 = kl.replace(',', '')
            n = re.findall(r"\d+\.?\d*", n1)
            kl1 = n[3:4]
            kl2 = n[7:8]
            kl3 = n[11:12]
            kl4 = n[15:16]
            kl5 = n[19:20]
            kl6 = n[23:24]
            kl7 = n[27:28]
            g = round((int(''.join((str(i) for i in kl1))) + int(''.join((str(i) for i in kl2)))+int(''.join((str(i) for i in kl3)))+int(''.join((str(i) for i in kl4)))+int(''.join((str(i) for i in kl5)))+int(''.join((str(i) for i in kl6)))+int(''.join((str(i) for i in kl7))))/10000,2)


            #a为销售数,g为客流数,zdgz为下周计划
            #-----------------以下为excel编辑部分--------------------------------------------
            #xlrd读取部分
            if __name__ == "__main__":
                rd_book = xlrd.open_workbook(ml, formatting_info=True)
                date = copy.copy(rd_book)
                table = date.sheets()[0]#获取第一个表单
                old_kl=table.cell(3,4).value#旧客流
                old_xs=table.cell(3,7).value#旧销售

                d = round(a/old_xs*100,2)#百分数
                bfxs =  str(d)[:4*100]+ '%'
                e = round(g/old_kl*100,2)
                bfkl =  str(e)[:4*100]+ '%'

                #xlwt写入部分
                #格式部分
                style = xlwt.XFStyle()
                font = xlwt.Font()
                font.name = '微软雅黑'
                font.height = 280
                style.font = font
                borders = xlwt.Borders()
                alignment = xlwt.Alignment()
                alignment.horz = 2
                alignment.vert = 1
                alignment.wrap = 1
                style.alignment = alignment
                borders = xlwt.Borders()
                borders.left = xlwt.Borders.THIN
                borders.right = xlwt.Borders.THIN
                borders.top = xlwt.Borders.THIN
                borders.bottom = xlwt.Borders.THIN
                style.borders = borders
                #写入部分
                wb = copy(date)
                Ws = wb.get_sheet(0)
                Ws.write(3,5,old_kl,style)
                Ws.write(3,8,old_xs,style)
                Ws.write(3,7,a,style)
                Ws.write(3,4,g,style)
                Ws.write(3,9,bfxs,style)
                Ws.write(3,6, bfkl, style)
                Ws.write(3,10,zdgz,style)
                wb.save('云泰2021年-融城园城茶马花街-x月x周主题街区数据周报.xls')
class myApp(wx.App):
        def  OnInit(self):
            self.frame = Frame()
            self.frame.Show(True)
            return True

if __name__ == '__main__':
    app = myApp()
    app.MainLoop()
微信截图_20211008220857.png

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Jack2002 发表于 2021-10-8 22:45
本帖最后由 Jack2002 于 2021-10-8 22:47 编辑

报错信息不是说了吗?copy是个函数,没有copy属性。
你这么引入copy,copy就是个函数,直接copy()调用就行了,不是copy.copy()。
 楼主| qianaonan 发表于 2021-10-8 22:50
Jack2002 发表于 2021-10-8 22:45
报错信息不是说了吗?copy是个函数,没有copy属性。
你这么引入copy,copy就是个函数,直接copy()调用就行 ...

明白了,非常感谢
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 21:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表