1.range和xrange的区别:
参考:https://blog.youkuaiyun.com/wangyajie_11/article/details/68060133
函数的使用方法基本相同,建议使用xrange,优点是节省内存空间,在Python 3中,range()与xrange()合并为range( )
2.glob.glob()函数:
参考:https://blog.youkuaiyun.com/mantoureganmian/article/details/47949101
glob.glob的参数是一个只含有方括号、问号、正斜线的正则表达式,同时也是shell命令
例如:获取filepath文件内的所有bmp文件
import glob
import tensorflow as tf
batch_size = 8
filepath='filepath0/*.bmp'
imgpath_list = glob.glob(filepath) #返回值为list对象
imgpath_tensro= tf.convert_to_tensor(imgpath_list,dtype=tf.string)
if true:
filename_queue = tf.train.slice_input_producer([img_path],num_epochs=1,shuffle=True) #或shuffle=False
file_contents = tf.read_file(filename_queue[0])
img = tf.image.decode_bmp(file_contents)
else:
filename_queue = tf.train.string_input_producer(img_path,num_epochs=1,shuffle=True) #或shuffle=False
key,value = tf.WholeFileReader().read(filename_queue)
img = tf.image.decode_bmp(value)
img = tf.image.resize_images(img,size=(100,100))
image_batch = tf.train.batch([img],batch_size=batch_size)
#或者
#min_after_dequeue = 100
#num_threads = 2
#capacity = min_after_dequeue + (num_threads + 4) * batch_size
#image_batch = tf.train.shuffle_batch([img],batch_size=batch_size,capacity=capacity,min_after_dequeue=min_after_dequeue,num_threads=num_threads))
3. logging使用
参考:https://www.jianshu.com/p/feb86c06c4f4
自定义封装log_init.py函数文件
# -*- coding:utf-8 -*-
import os
import logging
def log_init(log_dir='./logs',log_fname='train.log'):
if not os.path.exists(log_dir):
os.makedirs(log_dir)
logging.basicConfig(filename = os.path.join(log_dir, log_fname), filemode = 'w', level = logging.INFO)
logging.getLogger().addHandler(logging.StreamHandler())
调用logging使用
from config import args
import log_init
import logging
def main():
log_init(log_dir=args.log_path, log_fname='train_data.log')
logging.info('args:{}\t'.format(args))
#....
if __name__ == '__main__':
import time
s = time.time()
main()
e = time.time()
logging.info('total cost time: {:.2f}\t'.format(e - s))
4. str.format使用
参考:https://www.runoob.com/python/att-string-format.html
5.str 反转
参考:https://www.jb51.net/article/135153.htm
s = 'abcde'
s[::-1]
6.str split
参考:https://www.runoob.com/python/att-string-split.html
s = 'abcde/5555/6'
s_list = s.split('/') #拆分所有
#s_list = ['abcde','5555','6']
s_list = s.split('/') #仅拆分1次
#s_list = ['abcde','5555/6']
7.os使用
参考:https://www.cnblogs.com/MisterZhang/p/9134709.html
#创建目录
os.mkdir(path)
os.makedirs(path)
#删除目录
os.rmdir(path)
os.removdirs(path)
#删除文件
os.remov(path)
#遍历目录
os.walk(path)
#其参数path 为要遍历的目录,遍历path,返回一个对象,他的每个部分都是一个三元组 ('目录x',[目录x下的目录list],目录x下面的文件)
#判断是否为目录
os.path.isdir(path) #其参数 path为 要进行判断的路径。如果是则返回TRUE,否则返回FALSE。
#判断是否为文件
os.path.isfile(path) #其参数path为要进行判断的路径。如果是则返回TRUE,否则返回FALSE。
待续…