文件的读写
读文件
f = open('test.txt','r')
f.read()
'1\n2\n3\n4\n5\n6\n7\n8\n9\n'
f.close()
# 打开文件时是否出错,都可关闭文件
try :
f = open('test.txt','r')
print(f.read())
finally:
if f:
f.close()
1
2
3
4
5
6
7
8
9
# 打开文件写法
with open('test.txt','r') as f:
print(f.read())
1
2
3
4
5
6
7
8
9
# 当文本很大时,进行选取部分读
with open('test.txt','r') as f:
print(f.read(10))
1
2
3
4
5
with open('test.txt','r') as f:
for line in f.readlines(): #返回行
print(line)
1
2
3
4
5
6
7
8
9
**注:**f.readlines() 将返回该文件中包含的所有行。
写文件
字符编码
f = open('test.txt','r',encoding='gbk',errors='ignore')
f.read()
f.close()
覆盖(write)
f = open('test.txt','w',encoding='gbk',errors='ignore')
f.write('xiao xue') #文件中的内容被xiao xue 覆盖
f.close()
with open('test.txt','r') as f:
print(f.read())
xiao xue
添加
f = open('test.txt','a',encoding='gbk',errors='ignore')
f.write('xiao ming')
f.close()
with open('test.txt','r') as f:
print(f.read())
xiao xuexiao ming
StringIO
#在内存中读写String
from io import StringIO
f = StringIO()
f.write('xiao')
f.write(' ')
f.write('ming')
f.write('!')
1
print(f.getvalue()) #获取值
xiao ming!
BytesIO
from io import BytesIO
f = BytesIO()
f.write('早上好'.encode('utf-8'))
9
print(f.getvalue())
b'\xe6\x97\xa9\xe4\xb8\x8a\xe5\xa5\xbd'
文件操作和目录
import os #导入操作系统接口模块
os.name #获取当前操作系统类型——posix , nt , java, 对应linux/windows/java虚拟机
'nt'
os.environ #获取环境变量
environ({'ALLUSERSPROFILE': 'C:\\ProgramData', 'APPDATA': 'C:\\Users\\DELL\\AppData\\Roaming', 'CLASSPATH': '.;D:\\develop\\java\\jdk\\lib\\dt.jar;D:\\develop\\java\\jdk\\lib\\tools.jar', 'COMMONPROGRAMFILES': 'C:\\Program Files\\Common Files', 'COMMONPROGRAMFILES(X86)': 'C:\\Program Files (x86)\\Common Files', 'COMMONPROGRAMW6432': 'C:\\Program Files\\Common Files', 'COMPUTERNAME': 'DESKTOP-751VMQV', 'COMSPEC': 'C:\\WINDOWS\\system32\\cmd.exe', 'CONDA_DEFAULT_ENV': 'base', 'CONDA_EXE': 'D:\\Anaconda1\\Scripts\\conda.exe', 'CONDA_PROMPT_MODIFIER': '(base) ', 'CONDA_PYTHON_EXE': 'D:\\Anaconda1\\python.exe', 'CONDA_ROOT': 'D:\\Anaconda1', 'CONDA_SHLVL': '1', 'DRIVERDATA': 'C:\\Windows\\System32\\Drivers\\DriverData', 'HOMEDRIVE': 'C:', 'HOMEPATH': '\\Users\\DELL', 'JAVA_HOME': 'D:\\develop\\java\\jdk', 'LOCALAPPDATA': 'C:\\Users\\DELL\\AppData\\Local', 'LOGONSERVER': '\\\\DESKTOP-751VMQV', 'MYSQL': 'C:\\Program Files\\MySQL\\bin', 'NUMBER_OF_PROCESSORS': '4', 'ONEDRIVE': 'C:\\Users\\DELL\\OneDrive', 'ONEDRIVECONSUMER': 'C:\\Users\\DELL\\OneDrive', 'OS': 'Windows_NT', 'PATH': 'D:\\Anaconda1;D:\\Anaconda1\\Library\\mingw-w64\\bin;D:\\Anaconda1\\Library\\usr\\bin;D:\\Anaconda1\\Library\\bin;D:\\Anaconda1\\Scripts;D:\\Anaconda1\\bin;D:\\Anaconda1;D:\\Anaconda1\\Library\\mingw-w64\\bin;D:\\Anaconda1\\Library\\usr\\bin;D:\\Anaconda1\\Library\\bin;D:\\Anaconda1\\Scripts;D:\\Anaconda1\\Library\\bin;C:\\ProgramData\\Oracle\\Java\\javapath;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\System32\\OpenSSH\\;D:\\develop\\java\\jdk\\bin;D:\\develop\\java\\jre\\bin;D:\\develop\\java\\jdk\\bin;D:\\develop\\java\\jdk\\jre\\bin;C:\\Program Files (x86)\\Common Files\\Oracle\\Java\\javapath;C:\\Program Files\\MySQL\\bin;C:\\Users\\DELL\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Program Files\\MySQL\\bin;', 'PATHEXT': '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC', 'PROCESSOR_ARCHITECTURE': 'AMD64', 'PROCESSOR_IDENTIFIER': 'AMD64 Family 22 Model 48 Stepping 1, AuthenticAMD', 'PROCESSOR_LEVEL': '22', 'PROCESSOR_REVISION': '3001', 'PROGRAMDATA': 'C:\\ProgramData', 'PROGRAMFILES': 'C:\\Program Files', 'PROGRAMFILES(X86)': 'C:\\Program Files (x86)', 'PROGRAMW6432': 'C:\\Program Files', 'PROMPT': '(base) $P$G', 'PSMODULEPATH': 'C:\\Program Files\\WindowsPowerShell\\Modules;C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\Modules', 'PT7HOME': 'D:\\软件\\计算机网络\\Cisco Packet Tracer 7.1', 'PUBLIC': 'C:\\Users\\Public', 'PYTHONIOENCODING': '936', 'QT_DEVICE_PIXEL_RATIO': 'auto', 'SESSIONNAME': 'Console', 'SYSTEMDRIVE': 'C:', 'SYSTEMROOT': 'C:\\WINDOWS', 'TEMP': 'C:\\Users\\DELL\\AppData\\Local\\Temp', 'TMP': 'C:\\Users\\DELL\\AppData\\Local\\Temp', 'USERDOMAIN': 'DESKTOP-751VMQV', 'USERDOMAIN_ROAMINGPROFILE': 'DESKTOP-751VMQV', 'USERNAME': 'DELL', 'USERPROFILE': 'C:\\Users\\DELL', 'WINDIR': 'C:\\WINDOWS', 'CONDA_PREFIX': 'D:\\Anaconda1', 'JPY_INTERRUPT_EVENT': '1524', 'IPY_INTERRUPT_EVENT': '1524', 'JPY_PARENT_PID': '1356', 'TERM': 'xterm-color', 'CLICOLOR': '1', 'PAGER': 'cat', 'GIT_PAGER': 'cat', 'MPLBACKEND': 'module://ipykernel.pylab.backend_inline'})
# 查看当前目录的绝对路径
os.path.abspath('.')
'C:\\Users\\DELL'
# 创建
os.mkdir('C:\\Users\\DEll\\testdir')
# 删除
os.rmdir('C:\\Users\\DEll\\testdir')
datetime 日期和时间
from datetime import datetime
now = datetime.now()
now
datetime.datetime(2021, 1, 23, 20, 3, 48, 113755)
时间戳 (timestamp)
# 将时间转换成时间戳
ts = now.timestamp()
ts
1611403428.113755
# 将时间戳转换为时间
date = datetime.fromtimestamp(ts)
date
datetime.datetime(2021, 1, 23, 20, 3, 48, 113755)
strptime:将时间字符串转化为时间元组
# string 转化为 datetime
cdate = datetime.strptime('2020-2-27 20:20:20','%Y-%m-%d %H:%M:%S')
cdate
datetime.datetime(2020, 2, 27, 20, 20, 20)
# datetime转化为 string
now = datetime.now()
now.strftime('%a,%b%d %H:%M')
'Sat,Jan23 20:07'
Datetime
%Y 四位的年份
%m 两位的月份
%d 两位的天数值
%H 小时值(24)
%I 小时值(12)
%M 两位的分钟值
%S 秒值
%W 星期值