目录
- python如何在字符串中提取数字
- 数据类型为字符串的数字比较大小
- python将字典中的值写入到txt时,中文出现了\u等乱码现象?// 将字典写入txt文件中
- 将列表数据写入到txt、csv中
- 将dict数据写入到excel中
- 读取数据
- 如何判断5个表格中数据是否重复,如果重复就删除,没有重复的数据整合到一个表格中
- 怎么知道程序运行的时间
1.python如何在字符串中提取数字?
import re
words = '1.1万'
word1 = re.sub("\D", "", words)
print(word1) # 11 str
word2 = re.sub("[^0-9.]", "", words) #保留小数点
print(word2) # 1.1 str
word3 = re.findall('\d+(?:\.\d+)?', words)
print(word3) # ['1.1'] list
- 数据类型为字符串的数字比较大小
两个字符串直接比较大小有时候会出现明显的错误情况,最简单的就是用eval()函数转换一下数据类型
例如:
if '12.5' > '5':
print('xx')
else:
print('mm') # mm
if eval('12.5') > eval('5'):
print('xx')
else:
print('mm') # xx
- python将字典中的值写入到txt时,中文出现了\u等乱码现象?
我发现我总是文件各种读入写出不熟,导致每次都要查博客。。。现在总结一下
遇到上面这种情况,是因为用json.dumps()时,括号里没有设置ensure_ascii=False
比如:
import json
content = {'bookname': '剑来', 'followers': '3202'}
with open('learning.txt', 'a+', encoding='utf-8') as f:
f.write(json.dumps(content, ensure_ascii=False) + '\n') # {"bookname": "剑来", "followers": "3202"}
f.write(str(content) + '\n') # {'bookname': '剑来', 'followers': '3202'}
f.write(json.dumps(content) + '\n') # {"bookname": "\u5251\u6765", "followers": "3202"}
- 将列表数据写入到txt、csv中
import codecs
import csv
data = ['道爷不好惹', '123', '鬼仙之主', '456']
with open('learning.csv', 'w+', encoding='utf-8') as f:
f.write(str(data)) # ['道爷不好惹', '123', '鬼仙之主', '456']
file_csv = codecs.open('learning.csv', 'w+', encoding='utf-8')
result = csv.writer(file_csv, delimiter= ' ', quotechar= ' ', quoting= csv.QUOTE_MINIMAL)
for i in data:
result.writerow(i)
"""
道 爷 不 好 惹
1 2 3
鬼 仙 之 主
4 5 6
"""
# 将list写入txt
data = ['道爷不好惹', '123', '鬼仙之主', '456']
with open('learning.txt', 'w+',encoding='utf-8') as f:
for i, item in enumerate(data):
f.write(item + '\n')
"""
道爷不好惹
123
鬼仙之主
456
"""
import xlrd
workbook = xlrd.open_workbook('table.xlsx')
table = workbook.sheet_by_name('sheet1')
bn = table.col_values(0)
bookurl = table.col_values(1)
不知道为啥xlrd今天不能用了,查了网上说使用pip uninstall xlrd 之后 再pip install xlrd==1.2.0就可以了,但我仍然装不上,明天研究一下openpyxl这个包之后再更 = =
麻烦的是各种方法都可以用,所以经常搞混。可我只想知道一种最简单最通用的方法哎喂。
- 将dict数据写入到excel中
booklist = {'日月风华':'xxx', '陆地键仙':'xxx', '剑来':'xxx'}
key = list(booklist.keys())
value = list(booklist.values())
result_excel = pd.DataFrame()
result_excel['书名'] = key
result_excel['书籍链接'] = value
result_excel.to_excel('booklist.xlsx')
6. 读取数据
为了避免麻烦,我一般用pd.read_csv(),pd.read_excel() 函数来读csv、excel数据,用
with open('filename.txt', encoding='utf-8') as f:
for line in f.readlines():
一行一行读文本数据,可能涉及到items = json.loads(line) 或者用到strip()、split()函数等
- 如何判断5个表格中数据是否重复,如果重复就删除,没有重复的数据整合到一个表格中?
先用xlrd读取表格中的数据得到list,然后记录list中数值与数值的索引,将该数值和索引对应的其它数值放入到一个dict中,dict以某个数值(一般选易区分的)为key,其它为value,然后用dict.setdefault(),将不在dict中的加入进去即可。
Tips: python查找列表中某个元素的索引
bn_index = bn.index(bookname)
bn 表示一个list,bookname表示要查找的值,bn_index表示bookname的索引
- 怎么知道程序运行的时间
在程序main函数下(程序运行开始前)用
import time
if __name__ == '__main__':
start_time = time.time()
i = 0
while i < 10:
(xxx...)
i += 1
end_time = time.time()
print('{} run time:'.format(i), end_time - start_time)
最后,贴一个用openpyxl包读excel的博客,明天琢磨一下(资料侵删)
如何用Python读写Excel文件?最便捷的3种方式