python笔记4--python常见功能函数和问题

python笔记4--python常见功能函数和问题

不知不觉用python好久了,期间也遇见了形形色色的问题,平时这里一份文档那里一份笔记,要用的时候总会发现有些文档一时半会找不到,索性把曾经遇见的和以后遇见的都陆续归个档吧,以便于有需要的人和自己查看!

1、配置安装板块

1.1)使用清华源安装库

pip install PackageName -i https://pypi.tuna.tsinghua.edu.cn/simple 

pip install --upgrade pip 升级pip版本

pip list 查看已经安装的包

pip install --user --upgrade scikit-learn==0.20.2 升级scikit-learn到指定的版本

1.2)Ubuntu升级pip后出现如下错误:cannot import name 'main'

解决方法:gedit /usr/bin/pip3 如果为Python2.7.x就直接/usr/bin/pip即可

原始为:from pip import main 修改后:from pip._internal import main

1.3)Ubuntu上更改默认python版本

python3.6安装方法:
安装:

1) add-apt-repository ppa:jonathonf/python-3.6
2) apt-get update
3) apt-get install python3.6

配置只输入python3时就默认使用3.6版本:
1) update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 1
2) update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2(数字越大优先级越高)
3) update-alternatives --config python3
4) python3 -V

设置pip:
1) apt-get install python3-pip    # Python3
2) apt-get install python-pip     # Python2

python3.6 pip错误:ModuleNotFoundError: No module named 'pip._internal'
解决方法:重新安装pip3
wget https://bootstrap.pypa.io/get-pip.py  --no-check-certificate
python get-pip.py

1.4) pip install TensorFlow 常见错误

pip install tensorflow 执行后出现错误:Failed to load the native TensorFlow runtime
解决方法:
(1)pip install  mkl
(2)下载并安装 Visual C ++ Redistributate 2015 x64
由于笔者安装过较多其它库,因此安装以上两个就解决了该问题,继续执行的时候出现如下错误:
Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA,大致意思为这个版本的TF不能通过AVX2 FMA进行编译,因此可以通过如下方式解决:
笔者添加如下两行就解决了该问题
import os 
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' 

参考文献:
Failed to load the native TensorFlow runtime解决方法 https://www.jianshu.com/p/4115338fba2d
警告:Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA

2、功能函数板块

2.1)时间、日期相关函数

#参考 https://blog.csdn.net/guolanjiesxu/article/details/79295500
import datetime 
#获取当前日期
today_date = datetime.datetime.now().strftime('%Y-%m-%d')
print today_date

 #获取当前时间
today_time = datetime.datetime.now().strftime('%H:%M:%S')
print today_time

'''
2018-02-09
10:09:26
'''

#日期字符串转datetime
date_str = '2018-2-9'
date_datetime = datetime.datetime.strptime(date_str, '%Y-%m-%d')
print date_datetime
 
#时间字符串转datetime,,比较有意思,默认给的日期是1900-01-01,注意不是当前日期
time_str = '10:05:00'
time_datetime = datetime.datetime.strptime(time_str, '%H:%M:%S')
print time_datetime
 
#日期时间字符串转datetime
full_str = '2018-2-9 10:05:00'
t_datetime = datetime.datetime.strptime(full_str, '%Y-%m-%d %H:%M:%S')
print t_datetime
'''
2018-02-09 00:00:00
1900-01-01 10:05:00
2018-02-09 10:05:00
'''

获取A-B之间的所有日期:

def GetHisWeatherFromA2B(A='2016-01-01',B='2018-05-31'):
	'''
	03 获取A-B之间所有日期数,格式:yyyymmdd(20180101)
	'''
	print('GetHisWeatherFromA2B:')
	DateStart = datetime.datetime.strptime(A, '%Y-%m-%d') #<class 'datetime.datetime'>
	DateEnd = datetime.datetime.strptime(B, '%Y-%m-%d')
	curDate = DateStart
	while(curDate<DateEnd):
		curDate = curDate+datetime.timedelta(days=1)
		print(curDate.strftime('%Y%m%d'))

2.2) CSV相关函数

import csv

def SaveToCSV(dataList,fileName,wrtype='a'):
	with open(fileName, wrtype, newline='') as csvfile:
		writer  = csv.writer(csvfile)
		for row in dataList:
			writer.writerow(row)

def GetFromCSV(FileName):
    f = open(FileName,'r')
    csvlist = f.readlines()
    f.close()
    x = []
    for i in range(len(csvlist)):
    	tempList = csvlist[i].replace('\"','').split(',')
    	x.append(tempList)
    return x

2.3)json-dict互转功能

读取本地json文件,并转化为dict类型:

	pathName = 'E:\\Test.json' #此处需要使用绝对路径
	retDict = None
	with open(pathName,'r',encoding='utf-8') as f:
		tmpDict = json.load(fp=f)
		retDict = tmpDict
	print(retDict)
#将json字符串转为dict数据类型
objJson = '{"b1": "b1", "c1": "c1", "a1": 1, "a2": 2, "a3": 3}'
objDict = json.loads(objJson)
print(objDict)
#输出结果:
'''
{'b1': 'b1', 'c1': 'c1', 'a1': 1, 'a2': 2, 'a3': 3}
'''

将dict数据转为json并保存到文本中:

    fileName='dict2json.json'
    #retDict 为需要保存的dict类型数据
    with open(fileName, 'w',encoding='utf-8') as f:
		json.dump(retDict, f,ensure_ascii=False) #dump将dict转为json字符串并存储到对应的文件中
	print('fileName',fileName)
#将dict转为json数据
objDict = {'b1':'b1','c1':'c1','a1':1,'a2':2,'a3':3}
objJson = json.dumps(objDict)
objJson1= json.dumps(objDict,sort_keys=True, indent=2)#排序并且缩进两个字符输出
print(objJson)
print(objJson1)
#输出结果如下:
''' 
{"b1": "b1", "c1": "c1", "a1": 1, "a2": 2, "a3": 3}
{
  "a1": 1,
  "a2": 2,
  "a3": 3,
  "b1": "b1",
  "c1": "c1"
}
'''

3、说明

以上默认测试python版本为python2.7.x或者python3.6.x

猜你喜欢

转载自blog.csdn.net/u011127242/article/details/88032373