百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

python常用的内置模块有哪些?这20个模块算是高频使用的吗?(上)

itomcoil 2024-12-23 11:08 17 浏览


1.os

1.1 作用

主要是和操作系统相关的一个模块,如可以进行文件/目录的创建、删除等

1.2 导入

import os

1.3 常用方法及说明

常用方法

说明

os.getcwd()

获取当前路径

os.chdir(path)

改变当前工作目录

os.listdir(path)

列出指定路径下的所有文件和子目录,以列表形式展示

os.mkdir('dirname')

创建文件夹

os.makedirs('dirname1/dirname2')

可以生成多层递归目录

os.removedirs('dirname')

若目录为空,则删除,并递归到上一层目录,若也为空,则删除。

os.rmdir('dirname')

删除空目录,若目录不为空则报错

os.remove()

删除一个文件

os.rename('oldname','newname')

重命名文件/目录

os.stat('path/filename'')

获取文件/目录信息

os.sep

输入操作系统特定的路径分隔符,win下为'\',Linux为'/'

os.name

获取当前的平台,win为'nt' ,Linux为'posix'

os.system('command')

运行shell命令

os.environ

获取系统环境变量

os.path.abspath(path)

返回path的绝对路径

os.path.split(path)

将path分割成目录和文件名的元组

os.path.splittext(path)

分割路径,返回路径名和文件扩展名的元祖

os.path.dirname(path)

返回path的上一层目录

os.path.basename(path)

返回path中最后的文件名

os.path.exist(path)

若path存在返回True,否则返回False

os.path.isfile(path)

若path是一个文件则返回Ture,否则返回False

os.path.isdir(path)

若path是一个目录则返回Ture,否则返回False

os.path.isabs(path)

若path是绝对路径则返回Ture,否则返回False

os.path.join(path1[, path2[, ...]])

把目录和文件名合成一个路径

os.path.getsize(path)

返回文件大小,如果文件不存在就报错

os.path.getmtime(path)

返回最近文件修改时间

os.path.getctime(path)

返回文件path创建时间

os.path.realpath(path)

返回path的真实路径

os.path.normpath(path)

返回path的真实路径

1.4 示例

import os


print(os.getcwd())                 #获取当前路径 ,输出:E:\project\demo_mod
print(os.listdir())                #列出当前目录下的所有文件和目录 ,输出:['.idea', 'abc.txt', 'demo_os.py']
os.mkdir("aaa")                     #创建文件夹aaa
os.rmdir("aaa")                     #删除空目录aaa
os.makedirs("abc/bcd")              #创建多层文件夹abc/bcd
os.removedirs("abc/bcd")            #删除多层多文件abc/bcd
print(os.stat('abc.txt'))           # 输出 :os.stat_result(st_mode=33206, st_ino=562949953424572, st_dev


print(os.path.abspath("."))                             # 返回当前路径的绝对路径 ,输出 :E:\project\demo_mod
os.path.exists(r"E:\project\demo01")                    # 判断path是否存在 ,输出:False
os.path.isfile("abc.txt")                               # 判断abc.txt是文件 ,输出:True
print(os.path.split(r"E:\project\demo_mod\abc.txt"))    # ('E:\\project\\demo_mod', 'abc.txt')
print(os.path.dirname(r"E:\project\demo_mod\abc.txt"))  # E:\project\demo_mod

2.sys

2.1 作用

针对python解释器相关的变量和方法

2.2 导入

import sys

2.3 常用方法及说明

属性/方法

说明

sys.argv

命令行参数,第一个参数为脚本名字

sys.modules

所有加载到内存的模块都放在modules

sys.path

返回查找模块的搜索路径,以列表返回

sys.platform

返回操作系统平台名词

sys.version

返回python解释器程序的版本信息

sys.exit()

退出程序

2.4 示例

import sys


print("获取默认第一个参数:",sys.argv)
print("获取系统路径:",sys.path)
print("获取当前平台:",sys.platform)
print("获取当前版本:",sys.version)

#返回:
获取默认第一个参数: ['E:/project/demo_mod/demo02_sys.py']
获取系统路径: ['E:\\project\\demo_mod', 'E:\\project\\demo_mod', 'C:\\python36\\python36.zip', 'C:\\python36\\DLLs', 'C:\\python36\\lib', 'C:\\python36', 'C:\\python36\\lib\\site-packages']
获取当前平台: win32
获取当前版本: 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:04:45) [MSC v.1900 32 bit (Intel)

3.time

3.1 作用

和时间相关的模块

3.2 导入

import time

3.3 常用方法及说明

方法

说明

time.time()

获取当前时间戳

time.sleep(n)

当前线程停止运行n秒

time.asctime()

返回当前时间,格式是西欧格式

time.ctime()

返回当前时间,格式是西欧格式

time.localtime()

返回当前时间对象

time.struct_time()

构造一个对应的事件对象

time.strftime()

将一个时间对象格式化为特定的字符串输出

time.strptime()

照格式化字符把一个格式化时间字符串转成元组。

3.4 示例

import time

print("获取当前时间戳:",time.time())
print("返回当前时间,西欧格式:",time.ctime())
print("返回当前时间对象:",time.localtime())

time.sleep(2)       #睡眠2s
print("返回格式化后的时间:",time.strftime("%Y-%m-%d %X", time.localtime()))
print("将格式化的时间转化成时间对象,元祖形式:",time.strptime('2010-8-11 7:26:16', '%Y-%m-%d %X'))

#返回:
获取当前时间戳: 1634373068.0492582
返回当前时间,西欧格式: Sat Oct 16 16:31:08 2021
返回当前时间对象: time.struct_time(tm_year=2021, tm_mon=10, tm_mday=16, tm_hour=16, tm_min=31, tm_sec=8, tm_wday=5, tm_yday=289, tm_isdst=0)
返回格式化后的时间: 2021-10-16 16:31:10
将格式化的时间转化成时间对象,元祖形式: time.struct_time(tm_year=2010, tm_mon=8, tm_mday=11, tm_hour=7, tm_min=26, tm_sec=16, tm_wday=2, tm_yday=223, tm_isdst=-1)

4.datetime

4.1 作用

关于时间和日期的模块 ,这里面有几个常用的类,包括:
  • date : 日期类
  • time : 时间类
  • datetime : 日期和时间的类 ,相当于前面的两个类
  • datedelta : 时间间隔

4.2 导入

4.3 常用方法及说明

from datetime import date
d = date(date(2020,11,20))

下面表格中的d就是上面的日期对象

属性/方法

说明

date.max

返回最大的日期对象

date.min

返回最小的日期对象

d.year

返回2020

d.month

返回11

d.day

返回20

d.replace(year,month,day)

生成并返回一个新的日期对象,原日期对象不变

d.timetuple()

返回日期对应的time.struct_time对象

d.toordinal()

返回日期自0001-01-01开始的第多少天

d.weekday()

返回日期是星期几,[0, 6],0表示星期一

d.isoweekday()

返回日期是星期几,[1, 7], 1表示星期一

d.isocalendar()

返回一个元组,格式为:(year, weekday, isoweekday)

d.isoformat()

返回‘YYYY-MM-DD'格式的日期字符串

d.strftime(format)

返回指定格式的日期字符串,与time模块的strftime(forma t, struct_time)功能相同


from datetime import time
t = time(20,51,32)

下面表格中的t就是上面的时间对象

属性/方法

说明

t.hour

返回20,取值范围[0,23]

t.minute

返回51,取值范围在[0,59]

t.second

返32,取值范围在[0,59]

t.microsecond

微秒

t.tzinfo

返回传递给time构造方法的tzinfo对象,如果该参数未给出,则返回None

t.replace(hour[, minute[, second[, microsecond[, tzinfo]]]])

生成并返回一个新的时间对象,原时间对象不变

t.isoformat()

返回一个‘HH:MM:SS.%f'格式的时间字符串

t.strftime()

返回指定格式的时间字符串,与time模块的strftime(format, struct_time)功能相同

from datetime import datetime
dt = datetime(2020,09,22,10,35,28,322)

下面表格中的dt就是上面的日期时间对象

属性/方法

说明

dt.year

返回2020

dt.month

返回09

dt.day

返回22

dt.hour

返回10

dt.minute

返回35

dt.second

返回28

dt.microsecond

返回322

datetime.today()

返回一个表示当前本期日期时间的datetime对象

datetime.now([tz])

返回指定时区日期时间的datetime对象,如果不指定tz参数则结果同上

datetime.utcnow()

返回当前utc日期时间的datetime对象

datetime.fromtimestamp(timestamp[, tz])

根据指定的时间戳创建一个datetime对象

datetime.utcfromtimestamp(timestamp)

根据指定的时间戳创建一个datetime对象

datetime.combine(date, time)

把指定的date和time对象整合成一个datetime对象

datetime.strptime(date_str, format)

将时间字符串转换为datetime对象

datetime.timedelta()

返回一个时间间隔对象,可以直接与datetime.datetime对象做加减操作

4.4 示例

date示例

from datetime import date

now = date(2021, 10, 16)
tomorrow = now.replace(day = 17)

print('今天日期:', date.today())
print('今天日期:', now,)
print('明天日期:', tomorrow)
print("日期的元祖", now.timetuple())
print('返回星期几,0代表星期一:', now.weekday())
print('返回星期几,1代表星期一:', now.isoweekday())
print( '返回一个元祖', now.isocalendar())
print( '返回日期字符串:', now.isoformat())
print( '返回格式化的日期:', now.strftime("%Y-%m-%d"))


#输出:
今天日期: 2021-10-16
今天日期: 2021-10-16
明天日期: 2021-10-17
日期的元祖 time.struct_time(tm_year=2021, tm_mon=10, tm_mday=16, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=289, tm_isdst=-1)
返回星期几,0代表星期一: 5
返回星期几,1代表星期一: 6
返回一个元祖 (2021, 41, 6)
返回日期字符串: 2021-10-16
返回格式化的日期: 2021-10-16

time示例

from datetime import time

t1 = time(17,25,15)
print("显示小时:",t1.hour)
print("显示分钟:",t1.minute)
print("显示秒:",t1.second)
print("显示微秒:",t1.microsecond)

tm1 = t1.replace(minute=32)
print("替换后时间:",tm1)
print('返回时间字符串:', t1.isoformat())
print('返回格式化后的时间字符串', t1.strftime("%X"))


#输出:
显示小时: 17
显示分钟: 25
显示秒: 15
显示微秒: 0
替换后时间: 17:32:15
返回时间字符串: 17:25:15
返回格式化后的时间字符串 17:25:15

datetime示例

from datetime import datetime



print('最大时间:', datetime.max)
print('最小时间:', datetime.min)
print('今天时间,精确到微秒:', datetime.today())
print('现在时间,精确到微秒::', datetime.now())
print("格式化日期:",datetime.strftime(datetime.now(),"%y-%m-%d %H:%M:%S"))


#输出 :
最大时间: 9999-12-31 23:59:59.999999
最小时间: 0001-01-01 00:00:00
今天时间,精确到微秒: 2021-10-16 17:41:08.807900
现在时间,精确到微秒:: 2021-10-16 17:41:08.807900
格式化日期: 21-10-16 17:41:08

timedelta示例

from  datetime import timedelta,datetime
dt = datetime.now()

#日期减一天
dt1 = dt + timedelta(days=-1)       #昨天
dt2 = dt - timedelta(days=1)        #昨天
dt3 = dt + timedelta(days=1)        #明天
delta_obj = dt3-dt
print("当前日期-1:",dt1)
print("当前日期-1:",dt2)
print("当前日期+1:",dt3)
print("相差几天:",delta_obj)


#输出:
当前日期-1: 2021-10-15 17:45:39.574903
当前日期-1: 2021-10-15 17:45:39.574903
当前日期+1: 2021-10-17 17:45:39.574903
相差几天: 1 day, 0:00:00

5.random

5.1 作用

用于生成随机数

5.2 导入

import random

5.3 常用方法及说明

方法

说明

random.random()

用于生成一个0~1的随机浮点数

random.uniform(a,b)

用于生成一个指定范围内的随机浮点数

random.randint(a,b)

用于生成一个指定范围内的整数

random.randrange(start,end,step)

从指定范围内,按指定基数递增的集合中 获取一个随机数。

random.choice(sequence)

从序列中获取一个随机数

random.shuffle(x[, random])

用于将一个列表中的元素打乱,即将列表内的元素随机排列。

random.sample(sequence, k)

从指定序列中随机获取指定长度的片断并随机排列。

5.4 示例

import random


print("生成一个0~1的随机数:",random.random())
print("生成一个指定范围内的随机数:",random.uniform(1,10))
print("生成一个指定范围的随机整数:",random.randint(1,100))
print("生成指定集合,然后随机生成一个数:",random.randrange(1,5,1))
print("从列表中随机拿一个数:",random.choice(['a','b','c','d']))
print("指定的长度中随机排序",random.sample(['a','b','c','d'],3))

lst = [1,3,46,33,'a','b','c','d']
random.shuffle(lst)
print("列表被打乱后随机排序",lst)


#输出:
生成一个0~1的随机数: 0.06636579979518498
生成一个指定范围内的随机数: 7.29403347010388
生成一个指定范围的随机整数: 93
生成指定集合,然后随机生成一个数: 3
从列表中随机拿一个数: c
指定的长度中随机排序 ['d', 'b', 'a']
列表被打乱后随机排序 ['a', 3, 46, 'b', 1, 'c', 33, 'd']

6.subprocess

6.1 作用

执行系统命令

6.2 导入

import subprocess

6.3 常用方法及说明

方法

说明

subprocess.call(command)

执行命令,返回状态码

subprocess.run()

执行命令,等待命令执行完成后返回一个包含执行结果的CompletedProcess类的实例。

subprocess.check_call(command)

执行命令,如果执行状态码是0,则返回0,否则抛出异常

subprocess.check_output()

执行命令,如果执行状态码是0,则返回命令执行结果,否则抛出异常

subprocess.getoutput(cmd)

接收字符串格式的命令,执行命令并返回执行结果,其功能类似于os.popen(cmd).read()和commands.getoutput(cmd)。

subprocess.getstatusoutput(cmd)

执行cmd命令,返回一个元组(命令执行状态, 命令执行结果输出),其功能类似于commands.getstatusoutput()。

subprocess.Popen()

可以执行各种命令,以上的那些方法都是基于此类实现的。

6.4 示例

import subprocess


# 查看当前目录下的文件 ,以下三条命令必须指定shell参数 ,否则会报错
subprocess.run(["dir"],shell=True)
subprocess.run(["java","-version"])
subprocess.call("dir",shell=True)
subprocess.check_call("dir",shell=True)


# 以下两条方法专门就是执行shell命令的 。
subprocess.getoutput("dir")
subprocess.getstatusoutput("dir")

#输出 :以上都可以返回命令执行后的结果

7.hashlib

7.1 作用

用于加密相关的操作

7.2 导入

import hashlib

7.3 常用方法及说明

方法

说明

hashlib.md5()

进行md5算法加密

hashlib.sha1()

进行SHA1算法加密

hashlib.sha224()

进行SHA224算法加密

hashlib.sha256()

进行SHA256算法加密

hashlib.sha384()

进行SHA384算法加密

7.4 示例

import hashlib

m1 = hashlib.md5('hello python'.encode(encoding='utf-8'))  # 构建MD5对象
print(m1.hexdigest())       # 结果为: e5d3024684c9be1dd3f6114ecc8bbdddc


sh224 = hashlib.sha224("hello python".encode('utf-8'))
print(sh224.hexdigest())     

sh256 = hashlib.sha256("hello python".encode('utf-8'))
print(sh256.hexdigest())    

sh384 = hashlib.sha384("hello python".encode('utf-8'))
print(sh384.hexdigest())    


#结果输出:
e53024684c9be1dd3f6114ecc8bbdddc
7f78ad20eff5afc21166e6a5e22962a2819bd28d335ba95ff414b3f5
373a23512f9531ad49ec6ad43ecdda58df01e59d9ec5812d601fd05cc53345d3
eaf44aabb38c34ff948e714b9c3c08f3fed996d74fc9f1225d7368ccb386465df272e55912041921eddf13b51aff833c

8.json

8.1 作用

编码或解码json对象

8.2 导入

import json

8.3 常用方法及说明

方法

说明

json.dumps()

将python对象转化成json字符串

json.loads()

将json字符串转化为python对象

json.dump()

将python对象转化成json字符串并存入文件

json.load()

从文件读取字符串转化成python对象

8.4 示例

import json

# 1.字符串(json) --> 字典
color = '{"1":"red","2":"green","3":"blue","4":"black"}'
color_dict = json.loads(color)
print("color_dict:",color_dict)


# 2.字典 --> json
color_json  = json.dumps(color_dict)
print("color_json:",color_json)


# 3.(json)文件 --> 字典
with open("color.json") as f:
    dt = json.load(f)
print("dt:",dt)

# 4.dict --> (json)文件
with open("color1.json","w") as f1:
    json.dump(dt,f1)                #将python字典数据写入color1.json

    
#输出 :
color_dict: {'1': 'red', '2': 'green', '3': 'blue', '4': 'black'}
color_json: {"1": "red", "2": "green", "3": "blue", "4": "black"}
dt: {'1': 'red', '2': 'green', '3': 'blue', '4': 'black'}

9.pickle

9.1 作用

用于序列化的模块

9.2 导入

import pickle

9.3 常用方法及说明

方法

说明

pickle.dumps()

将数据通过特殊的形式转换为只有python语言认识的字符串

pickle.loads()

将pickle数据转换为python的数据结构

pickle.dump()

将数据通过特殊的形式转换为只有python语言认识的字符串,并写入文件

pickle.load()

从数据文件中读取数据,并转换为python的数据结构

9.4 示例

import pickle

# 1.序列化
color = ["red","green","blue","black"]
color_byte = pickle.dumps(color)
print("color_byte:",color_byte)


# 反序列化即字节转列表(python数据类型)
color_obj  = pickle.loads(color_byte)
print("color_obj:",color_obj)


class Person():

    def __init__(self,name,age):
        self.name = name
        self.age = age


p = Person('zhangsan',21)


# 3.持久化到文件
with open("color.txt","wb") as f:
    dt = pickle.dump(p,f)

# 4. 从文件读取数据
with open("color.txt","rb") as f:
    p_data = pickle.load(f)

print(p_data)


#输出 :
color_byte: b'\x80\x03]q\x00(X\x03\x00\x00\x00redq\x01X\x05\x00\x00\x00greenq\x02X\x04\x00\x00\x00blueq\x03X\x05\x00\x00\x00blackq\x04e.'
color_obj: ['red', 'green', 'blue', 'black']
<__main__.Person object at 0x03A4B050>

10.shutil

10.1 作用

主要用于文件或目录的复制或归档的操作

10.2 导入

import shutil

10.3 常用方法及说明

方法

说明

shutil.copy('源文件','目标地址')

复制文件

shutil.copy2('源文件','目标地址')

复制文件,暴露元数据

shutil.copyfileobj(open('源文件','r'),open('目标文件','w'))

讲一个文件的内容拷贝到另外一个文件当中

shutil.copyfile('源文件','目标文件')

将一个文件的内容拷贝到另外一个文件中

shutil.copytree('源目录','目标目录')

复制整个目录

shutil.copymode()

拷贝权限

shutil.copystat()

拷贝元数据(状态)

shutil.rmtree()

移除整个目录,无论是否为空

shutil.move('源地址','目标地址')

移动文件或文件夹

shutil.which('命令字符串')

检测命令对应的文件路径

shutil.disk_usage('盘符')

检测磁盘使用信息

shutil.make_archive('目标文件路径','归档文件后缀','需要归档的目录')

归档函数,归档操作

shutil.unpack_archive('归档文件路径','解包目标文件夹')

解包操作

shutil.get_archive_formats()

获取当前系统已注册的归档文件格式(后缀)

shutil.get_unpack_formats()

获取当前系统已经注册的解包文件格式(后缀)

10.4 示例

import shutil

shutil.copy('abc.txt','bcd.txt')
shutil.copy2('abc.txt','ddd.txt')

# 基于文件流的复制,目标文件必须存在
with open("abc.txt","rb") as f ,open("ddd.txt","wb") as s:
    shutil.copyfileobj(f,s)

shutil.copyfile('abc.txt','acc.txt')        # 目标文件无须存在
shutil.copymode('abc.txt','acc.txt')        # 仅拷贝权限,内容,组,用户均不变,目标文件必须存在


# 文件夹压缩,不可压缩文件
shutil.make_archive("a1","zip","E:\project\demo2801")


# 备注 :以上都直接形成文件

因篇幅有限,故另外一部分放在下一篇文章 。

相关推荐

PS小技巧 调整命令,让人物肤色变得更加白皙 #后期修图

我们来看一下如何去将人物的皮肤变得更加的白皙。·首先选中图层,Ctrl键加J键复制一层。·打开这里的属性面板,选择快速操作删除背景,这样就会将人物进行单独的抠取。·接下来在上方去添加一个黑白调整图层,...

把人物肤色提亮的方法和技巧

PS后期调白肤色提亮照片的方法。一白遮百丑,所以对于Photoshop后期来说把人物肤色调白是一项非常重要的任务。就拿这张素材图片来说,这张素材图片人脸的肤色主要偏红、偏黄,也不够白皙,该怎样对它进行...

《Photoshop教程》把美女图片调成清爽色彩及润肤技巧

关注PS精品教程,每天不断更新~~室内人物图片一般会偏暗,人物脸部、肤色及背景会出现一些杂点。处理之前需要认真的给人物磨皮及美白,然后再整体润色。最终效果原图一、用修补工具及图章工具简单去除大一点的黑...

PS后期对皮肤进行美白的技巧

PS后期进行皮肤美白的技巧。PS后期对皮肤进行美白的技巧:·打开素材图片之后直接复制原图。·接下来直接点击上方的图像,选择应用图像命令。·在通道这里直接选择红通道,混合这里直接选择柔光,然后点击确定。...

493 [PS调色]调模特通透肤色

效果对比:效果图吧:1、光位图:2、拍摄参数:·快门:160;光圈:8;ISO:1003、步骤分解图:用曲线调整图层调出基本色调。用可选颜色调整图层调整红色、黄色、白色和灰色4种颜色的混合比例。用色彩...

先选肤色再涂面部,卡戴珊的摄影师透露:为明星拍完照后怎么修图

据英国媒体12月17日报道,真人秀明星金·卡戴珊终于承认,她把女儿小北P进了家族的圣诞贺卡,怪不得粉丝们都表示这张贺卡照得非常失败。上周,这位39岁的女星遭到了一些粉丝针对这张照片的批评,她于当地时间...

如何在PS中运用曲线复制另一张照片的色调

怎样把另一张作品的外观感觉,套用到自己的照片上?单靠肉眼来猜,可能很不容易,而来自BenSecret的教学,关键是在PS使用了两个工具,让你可以准确比较两张照片的曝光、色调与饱和度,方便你调整及复制...

PS在LAB模式下调出水嫩肤色的美女

本PS教程主要使用Photoshop使用LAB模式调出水嫩肤色的美女,教程调色比较独特。作者比较注重图片高光部分的颜色,增加质感及肤色调红润等都是在高光区域完成。尤其在Lab模式下,用高光选区调色后图...

在Photoshop图像后期处理中如何将人物皮肤处理得白皙通透

我们在人像后期处理中,需要将人物皮肤处理的白皙通透,处理方法很多,大多数都喜欢使用曲线、磨皮等进行调整,可以达到亮但是不透,最终效果往往不是很好,今天就教大家一种如何将任务皮肤处理得白皙通透,希望能帮...

PS调色自学教程:宝宝照片快速调通透,简单实用!

PS调色自学教程:宝宝照片快速调通透。·首先复制图层,然后选择进入ACR滤镜,选择曲线锁定照片的亮部,也就高光位置,其他部位补亮一点,尤其是阴影的部位补亮多一些,让画面的层次均匀一点。·然后回到基本项...

【干货】如何利用PS进行人物美化

人物图像美化在Photoshop中非常常用,Photoshop作为一款功能强大的图像处理软件,不仅可以对人像进行基本的调色、美化和修复等处理,还可以改变人物的线条和幅度,如调整脸部器官和脸型的大小、调...

教大家一种可以快速把肤色处理均匀的方法@抖音短视频

快速把肤色处理均匀的方法。今天教大家一种可以快速把肤色处理均匀的方法。像这张照片整体肤色走紫红色,但是局部偏黄缘处理起来非常的麻烦。其实我们只需要新建空白图层,图层混合模式更改为颜色,再选择画笔工具把...

PS调色教程 利用RAW调出干净通透的肤色

要么不发,要么干货。后期教程来噜~用RAW调出干净通透的肤色。这次终于不会原片比PS后好看了吧。如果你依然这么觉得,请不要残忍的告诉我这个事实,泪谢TAT)附送拍摄花絮,感谢各位的支持更多风格请关注m...

photoshop后期皮肤变白的技巧

PS后期皮肤变白的技巧。1.PS后期让皮肤变白的方法有很多种,接下来教你一种非常简单容易上手的方法。2.打开素材图片之后,直接在小太极下拉框的位置添加一个纯色调整图层,颜色设置一个纯白色,点击...

Photoshop调出人物的淡雅粉嫩肤色教程

本教程主要使用Photoshop调出人物的淡雅粉嫩肤色教程,最终的效果非常的通透迷人,下面让我们一起来学习.出自:86ps效果图:原图:1、打开原图复制一层。2、用Topaz滤镜磨皮(点此下载)。3、...