python 经常遇到的问题小结(持续更新:2019-02-23)

1.问题一:定时任务问题

因为每天上午都要出一些关键性的报表,但是上午大家都来上班啦,在服务器上查数据,汇成表都会和其他同事占资源,会导致运行较慢,所以打算在半夜运行代码,下面介绍三种方式:

1.1 最简单

import time
def doTh():
     print("嘎嘎")
for i in range(5):  
    doTh()  
    time.sleep(10)

1.2 较复杂

import datetime
import time

def doTh():
    print(嘎嘎')
    # 假装做这件事情需要一分钟
    time.sleep(60)

def go(h=0, m=0):
    '''h表示设定的小时,m为设定的分钟'''
    while True:
        # 判断是否达到设定时间,例如0:00
        while True:
            now = datetime.datetime.now()
            # 到达设定时间,结束内循环
            if now.hour==h and now.minute==m:
                break
            # 不到时间就等20秒之后再次检测
            time.sleep(20)
        # 做正事,一天做一次
        doTh()

go()

1.3 复杂

相信这个网上也有很多介绍了,这里也就不多费口舌了


image.png

2.问题二:批量将txt文件转化成csv文件

#识别当前目录下的txt文件名
# -*- coding: utf-8 -*-  
import os  
import csv
def listdir(path, list_name,file_type):  #传入存储的list
    for file in os.listdir(path): 
        if os.path.splitext(file)[1] == file_type: #其中os.path.splitext()函数将路径拆分为文件名+扩展名
            file_path = os.path.join(path, file)  
            if os.path.isdir(file_path):  
                listdir(file_path, list_name)  
            else:  
                list_name.append(file_path)
image.png

接下来就是将这4个txt文件名获取到


image.png

万事具备,我们就可以开始转成csv格式了

for files in list_name:
    de = os.getcwd()+'/'
    files = files.replace(de,"").replace("20190222ls.txt","")
    new_file = files+".csv"
    with open(new_file,'w',newline="") as csvfile:
        spamwriter = csv.writer(csvfile, dialect='excel')
        file = files+"20190222ls.txt"
        with open(file, 'rb') as filein:
            count = 0
            for line in filein:
                try:
                    flag = str(line,encoding="utf-8")
                    line_list = flag.strip('\\N\n').split('\001')
                    spamwriter.writerow(line_list)
                    count = count + 1
                except:
                    count = count + 1 
                    print("第{}行出现报错,该行数值为{}".format(count,line_list))
可以看到已经有4个csv格式文件了,且去掉了20190222ls的后缀

。。。。。。。持续更新中

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容