你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
1.文件常见编码:ascii, latin-1, utf-8和utf-16
其中ascii对应从U+0000到U+007F范围内的7位字符。
latin-1是字节0-255到U+0000至U+00FF范围内Unicode字符的直接映射。 当读取一个未知编码的文本时使用latin-1编码永远不会产生解码错误。
2.rt只写文件,覆盖重名文件;
at只写文件,不覆盖;
xt只有不存在时写
# 只读文件
with open('E://python_basicCourse/Readme.txt','rt'
,encoding='utf-8') as f: #以utf-8编码读取文件
file = f.read()
print(file)
# 缩进块结束后自动关闭文件
# 只写文件
with open('E://python_basicCourse/test.txt','wt',
errors = 'replace') as f:
words = 'keep studying efficiently'
print(words, file = f) # 把words 写到打开的文本里去
# errors = 'replace' 表示文件编码不为utf-8时跳过
#读写2进制
with open('somefile.bin', 'rb') as f:
data = f.read()
text = data.decode('utf-8')
# 读取2进制文件时要解码
with open('somefile.bin', 'wb') as f:
words = 'keep studying efficiently'
f.write(words.encode('utf-8'))
# 写入2进制文件必须编码写入
用 os、os.path、glob模块
os.getcwd() # 返回工作目录
>> Out[6]: 'E:\\python_basicCourse'
os.chdir('E:\\')
#修改工作目录到 'E:\\'
print(os.getcwd())
# >> E:\\
os.listdir('.')
# 返回当前目录(工作目录)所有文件名
os.listdir('..')
# 返回上一级目录、所有文件名
os.makedirs('E:\\python_test')
# 在工作目录下创建多层文件夹,若文件重名会报错
os.makedirs('E:\\python_tes')
os.rmdir('E:\\python_tes') # 删除空文件夹
os.rename('E:\\python_test','E:\\python_check')
文件夹重命名
运行系统shell命令
os.system('cmd') # 打开命令行
os.system('calc') # 打开计算机
os.path.basename('E:\\PyCharmProjects\Head_firsr_coding.py')
# 只返回文件名
os.path.dirname('E:\\PyCharmProjects\Head_firsr_coding.py')
# 只返回路径
os.path.splitext('E:\\PyCharmProjects\Head_firsr_coding.py')
# 返回文件名和扩展名
pyfiles = [name for name in os.listdir('.')
if name.endswith('.py')]
# 获取当前目录所有.py结尾的文件名
'''或者'''
import glob
pyfiles = glob.glob('file_OS*.py')
# 获取当前目录满足条件的文件名
'''或者'''
from fnmatch import fnmatch
pyfiles = [name for name in os.listdir('.')
if fnmatch(name, '*.py')]
# 获取当前目录所有.py结尾的文件名
用 os、os.path、time模块
import time
def return_py (path):
os.chdir(path) # 工作目录改成path
for i in os.listdir(): # 获取所有文件路径
if os.path.splitext(i)[1] == '.py':
print(os.path.splitext(i)[0]) # 输出文件名
print(os.path.getsize(i)) # 输出文件大小(byte)
print(os.path.getctime(i)) # 输出创建时间
print(time.gmtime(os.path.getatime(i))) # 输出最近访问时间
print(time.localtime(os.path.getmtime(i))) # 输出最近修改时间
return_py('E:\\python_basicCourse') # 注意路径要用
os.path.isfile('E:\\PyCharmProjects\Head_firsr_coding.py')
# 判断是否存在文件
os.path.isdir('E:\\PyCharmProjects')
# 判断是否是路径
# 测试文件是否存在
os.path.exists('E:\\PyCharmProjects')
# >> True
# 测试路径是否存在
os.path.isfile('E:\\PyCharmProjects\Head_firsr_coding.py')
# 判断是否为文件,是路径则返回False
在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。
浏览网页的时候,服务器会把动态生成的Unicode内容转换为UTF-8再传输到浏览器
str类型中一个字符占多个字节,bytes中一个字符占一个字节
纯英文的str可以用ASCII编码或UTF-8编码为bytes,含有中文的str只能用UTF-8编码为bytes
string='ABC # str类型
b_string=b'ABC' # byte类型
string.encode('utf-8')
# 把str(Unicode)编码成byte(utf-8)
>> Out[75]: b'ABC'
b'\xe5\x92\xb8\xe9\xb1\xbc'.decode('utf-8',errors='ignore')
# 把utf-8解码成Unicode
>> Out[76]: '咸鱼
len('咸鱼') # Unicode编码中文长度
Out[77]: 2
len(b'\xe5\x92\xb8\xe9\xb1\xbc') # utf-8编码中文长度
Out[78]: 6
8 days
参考文献:
https://python3-cookbook.readthedocs.io/zh_CN/latest/index.html
https://www.liaoxuefeng.com/wiki/1016959663602400