一、文件相关操作
1.打开txt文件
with open("77.txt", "r",encoding='utf-8') as f: for line in f.readlines(): line = line.replace("\n", "")
备注:
有时碰到有空行的txt文件要用下面的方法
with open("url_list.txt", "r",encoding='utf-8') as f: for line in f.readlines(): if line == '\n': pass else: ingle_url = line .replace("\n", "")
2、保存文件
def save_file(content,filename): with open(filename,"a",encoding="utf-8") as f: f.write(content+'\n')
3.txt文件转list
def text2list(filename): """ #将关键词列表文件转成list """ result=[] with open(filename,'r',encoding='UTF-8') as f: for line in f: result.append(line.strip('\n')) return result
二、将列表保存到EXCEL
import xlwt import xlrd from xlutils.copy import copy def write_excel_xls_append(path, value): # index = len(value) # 获取需要写入数据的行数 workbook = xlrd.open_workbook(path) # 打开工作簿 sheets = workbook.sheet_names() # 获取工作簿中的所有表格 worksheet = workbook.sheet_by_name(sheets[0]) # 获取工作簿中所有表格中的的第一个表格 rows_old = worksheet.nrows # 获取表格中已存在的数据的行数 new_workbook = copy(workbook) # 将xlrd对象拷贝转化为xlwt对象 new_worksheet = new_workbook.get_sheet(0) # 获取转化后工作簿中的第一个表格 for j in range(0, len(value)): new_worksheet.write(rows_old, j, value[j]) # 追加写入数据 new_workbook.save(path) # 保存工作簿 print("xls格式表格【追加】写入数据成功!") #用法 write_excel_xls_append('可以注册的域名.xls',domain_result)
参考:
https://blog.csdn.net/u013250071/article/details/81911434
不过如果写入的数据超过256行,就会报错:
ValueError: column index (256) not an int in range(256)
所以,后来又有一个新的代码:
import xlsxwriter as xw def xw_toExcel(data, fileName): # xlsxwriter库储存数据到excel workbook = xw.Workbook(fileName) # 创建工作簿 worksheet1 = workbook.add_worksheet("sheet1") # 创建子表 worksheet1.activate() # 激活表 title = ['序号', '目录名称', 'url'] # 设置表头 worksheet1.write_row('A1', title) # 从A1单元格开始写入表头 i = 2 # 从第二行开始写入数据 for j in range(len(data)): insertData = j+1, data[j][0], data[j][1] row = 'A' + str(i) worksheet1.write_row(row, insertData) i += 1 workbook.close() # 关闭表
三、将数据写入数据库
import MySQLdb class KeywordsTool(): """一个采集chinaz关键词指数的类""" def __init__(self, url): # init进行初始化参数,把我们需要从外部传入的参数,作为类的属性 self.url = url self.conn=MySQLdb.connect(host="localhost",user="root",passwd='',db="testpy" ,port=3306,charset="utf8") #连接数据库 self.cursor=self.conn.cursor() #定位一个指针 def insert_to_db(self,word,total_index,pc_index,m_index): #将数据插入Mysql数据库 dt=datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") #insert ignore into 是避免重复插入 # insert_result = self.cursor.execute("insert ignore into keywords(word,total_index,pc_index,m_index,create_time) VALUES ('%s',%s,%s,%s,str_to_date(\'%s\','%%Y-%%m-%%d %%H:%%i:%%s'))"%(word,total_index,pc_index,m_index,dt)) insert_result = self.cursor.execute('insert ignore into keywords(word,total_index,pc_index,m_index,create_time) VALUES ("%s",%s,%s,%s,str_to_date(\"%s\","%%Y-%%m-%%d %%H:%%i:%%s"))'%(word,total_index,pc_index,m_index,dt)) if insert_result == 0: print("关键词{}已经存在,略过".format(word)) else: print('[关键词:',word,'-----------已成功添加到数据库---------------') # time.sleep(10) self.conn.commit()
其他:
1.将列表转为字符串,同时保留换行符。
四、显示文件夹下面的所有文件夹,显示文件夹下面的所有文件
#输出某文件夹下面的所有文件名 import os all_file = os.listdir("D:\\china-sunrider.com.cn\\python_02\\keywords_backup") print(all_file) for file in all_file: file_name = file.split(".")[0] print(file_name) with open("k_list.txt","a",encoding="utf-8") as f: f.write(file_name + '\n') stock_list = [x[0] for x in os.walk("C:\\Users\\Kevin\\Desktop\\temp")] for each_dir in stock_list: print(each_dir) ticker = each_dir.split("\\")[-1] print(ticker)
五、设定代码自动执行
首先如果国外服务器,注意时差的问题。、
1.新建一个.sh文件,cd到程序所在文件夹,再python3执行即可。
2.使脚本具有执行权限。
3.crontab -e设定crontab,执行.sh文件文件。
参考这里
十五、将数据添加到df
十六、获取段落长度
def get_content_wordnumber(html): text= re.sub('[\s+\.\!\/_,$%^*(+\"\'):-;|]+|[+——!,。?、~@#¥%……&*():;“”《》]+','',html) text2 = re.sub('<[^>]*?>','',text) words_number = len(text2) return words_number
十七、判断输入内容的类型