吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1733|回复: 15
收起左侧

[求助] Python if判断语句直接跳过

[复制链接]
LK-Hulk 发表于 2021-12-15 18:49
各位大佬好,
不多废话,直入主题。
代码大意是把文件字符拆开,重组后,赋值让python判断,用xlwing直接写入,但运行后发现,if语句都直接跳过,文件根本没写入。提前感谢看过大佬们。
附上源代码,可能比较乱。
  import xlwings as xwimport time
import os
import xlwt
import xlrd

file_dir='C:/Users/ASUS/Desktop/处理好的文件'
for root,dirs,files in os.walk(file_dir):
    for a in range(0,14):
        os.chdir(r'C:/Users/ASUS/Desktop/处理好的文件')
        print('---------------分隔符')
        print(a)
        print(files[a])
        app = xw.App(visible=False, add_book=False)
        workbook=app.books.open(files[a])
        sheets=workbook.sheets[0]
        last_cell=sheets.used_range.last_cell
        nrows=sheets.used_range.last_cell.row
        ncols = sheets.used_range.last_cell.column
        filesname=files[a]
        dir0=[filesname[1],filesname[2]]
        dir1=[filesname[4],filesname[5],filesname[6],filesname[7],filesname[8]]
        nation=''.join(dir0)
        date=''.join(dir1)
        print(nation)
        print(date)
        print(nrows)
        print(ncols)
        if date==11.15:
            for i in range(0,nrows):
                date_value=sheets.range('i,0').value=='2021/11/15'
        elif date==11.16:
            for i in range(nrows):
                date_value=sheets.range('i,0').value=='2021/11/16'
        elif date==11.17:
            for i in range(nrows):
                date_value=sheets.range('i,0').value=='2021/11/17'
        elif date==11.18:
            for i in range(nrows):
                date_value=sheets.range('i,0').value=='2021/11/18'
        elif date==11.19:
            for i in range(nrows):
                date_value=sheets.range('i,0').value=='2021/11/19'
        elif date==11.20:
            for i in range(nrows):
                date_value=sheets.range('i,0').value=='2021/11/20'
        elif date==11.21:
            for i in range(nrows):
                date_value=sheets.range('i,0').value=='2021/11/21'
        print('日期写入完成')
        if nation=='UK':
            for i in range(nrows):
                nation_value=sheets[i,1].value=='Amazon.co.uk'
        elif nation=='DE':
            for i in range(nrows):
                    nation_value = sheets[i, 1].value == 'Amazon.de'
        elif nation=='FR':
            for i in range(nrows):
                    nation_value = sheets[i, 1].value == 'Amazon.fr'
        elif nation=='ES':
            for i in range(nrows):
                    nation_value = sheets[i, 1].value == 'Amazon.es'
        elif nation == 'IT':
            for i in range(nrows):
                    nation_value = sheets[i, 1].value == 'Amazon.it'
        print('站点写入完成')
        # for i in range(1,nrows):
        #
        #     New_value=sheets[i,0].value=['']
        workbook.close()
        app.quit()
        time_start = time.time()
        time_end = time.time()
        print('所用时间:',time_end-time_start,"")
        time.sleep(0.1)

跳过了写入的代码

跳过了写入的代码

原文件原封不动

原文件原封不动

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

ryosga 发表于 2021-12-15 18:55
date 应该是字符串类型吧, 相等判断应该是
[Python] 纯文本查看 复制代码
 if date == '11.15':
fairesense 发表于 2021-12-15 18:58
zhmyi000 发表于 2021-12-15 19:01
你看看date的数据类型是不是float
建议用字符串拼成日期,而不是if elif嵌套
三滑稽甲苯 发表于 2021-12-15 20:25
1. float和str肯定不相等啊
2. 这么多if,可以改下:date_value = f'2021/{date[:2]}/{date[3:]}'
 楼主| LK-Hulk 发表于 2021-12-15 20:54
三滑稽甲苯 发表于 2021-12-15 20:25
1. float和str肯定不相等啊
2. 这么多if,可以改下:date_value = f'2021/{date[:2]}/{date[3:]}'

Emm,大哥对不起,小白不是很懂第二点,因为刚入门,datevalue会继续学习。先谢谢。
关于第一点,那我可否加一个把字符串str类型转换为float在进行if判断?
 楼主| LK-Hulk 发表于 2021-12-15 20:56
zhmyi000 发表于 2021-12-15 19:01
你看看date的数据类型是不是float
建议用字符串拼成日期,而不是if elif嵌套

Emm 大佬你好,那我可否加一个把字符串str类型转换为float在进行if判断?
If elif对小白来说相对友好,所以就套娃使用了。
aonima 发表于 2021-12-15 21:01
数据类型不相同
Lich 发表于 2021-12-15 21:35
给你个比较重要的方法  type()
冥界3大法王 发表于 2021-12-16 06:41
一步一个调试输出变量,不能懒。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-25 18:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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