Datawhale学习计划:python基础任务5

file


打开文件方式

读文件f = open('/Users/michael/test.txt', 'r')
读二进制文件:f = open('/Users/michael/test.jpg', 'rb')
读取非UTF-8编码的文本文件:
f = open('/Users/michael/gbk.txt', 'r', encoding='gbk')

写文件f = open('/Users/michael/test.txt', 'w')

文件对象方法

f.read(size)
# 读取size字节的文件内容
f.readline()
# 从文件读取一行,包括'\n'字符
f.readlines()
# 读取所有内容,按行返回

f.write(string)
# 将字符串写入文件,返回写入的字符数
f.tell()
# 给出文件的额当前位置,表现为二进制形式下距离文件开头的字节数
f.seek(offset, from_what)
# 移动文件指针到指定位置,offset指偏移量 from_what指参考点
f.close()
# 关闭打开的文件

对excel及csv文件进行操作

主要参考菜鸟可米的blog
python读写csv文件

import csv

#读取csv文件内容方法1
csv_file = csv.reader(open('testdata.csv','r'))
next(csv_file, None)    #skip the headers
for user in csv_file:
    print(user)

#读取csv文件内容方法2
with open('testdata.csv', 'r') as csv_file:
    reader = csv.reader(csv_file)
    next(csv_file, None)
    for user in reader:
        print(user)

#从字典写入csv文件
dic = {'fengju':25, 'wuxia':26}
csv_file = open('testdata1.csv', 'w', newline='')
writer = csv.writer(csv_file)
for key in dic:
    writer.writerow([key, dic[key]])
csv_file.close()   #close CSV file

csv_file1 = csv.reader(open('testdata1.csv','r'))
for user in csv_file1:
    print(user)

python读写excel文件
需要先用python pip安装xlrd,xlwt库

import xlrd, xlwt   #xlwt只能写入xls文件

#读取xlsx文件内容
rows = []   #create an empty list to store rows
book = xlrd.open_workbook('testdata.xlsx')  #open the Excel spreadsheet as workbook
sheet = book.sheet_by_index(0)    #get the first sheet
for user in range(1, sheet.nrows):  #iterate 1 to maxrows
    rows.append(list(sheet.row_values(user, 0, sheet.ncols)))  #iterate through the sheet and get data from rows in list
print(rows)

#写入xls文件
rows1 = [['Name', 'Age'],['fengju', '26'],['wuxia', '25']]
book1 = xlwt.Workbook()   #create new book1 excle
sheet1 = book1.add_sheet('user')   #create new sheet
for i in range(0, 3):    
    for j in range(0, len(rows1[i])):
        sheet1.write(i, j, rows1[i][j])
book1.save('testdata1.xls')   #sava as testdata1.xls

OS模块


参考Sun阳的blog

#OS模块

#os模块就是对操作系统进行操作,使用该模块必须先导入模块:
import os

#getcwd() 获取当前工作目录(当前工作目录默认都是当前文件所在的文件夹)
result = os.getcwd()
print(result)

#chdir()改变当前工作目录
os.chdir('/home/sy')
result = os.getcwd()
print(result)

open('02.txt','w')

#操作时如果书写完整的路径则不需要考虑默认工作目录的问题,按照实际书写路径操作
open('/home/sy/下载/02.txt','w')

#listdir() 获取指定文件夹中所有内容的名称列表
result = os.listdir('/home/sy')
print(result)

#mkdir()  创建文件夹
#os.mkdir('girls')
#os.mkdir('boys',0o777)

#makedirs()  递归创建文件夹
#os.makedirs('/home/sy/a/b/c/d')

#rmdir() 删除空目录
#os.rmdir('girls')

#removedirs 递归删除文件夹  必须都是空目录
#os.removedirs('/home/sy/a/b/c/d')

#rename() 文件或文件夹重命名
#os.rename('/home/sy/a','/home/sy/alibaba'
#os.rename('02.txt','002.txt')

#stat() 获取文件或者文件夹的信息
#result = os.stat('/home/sy/PycharmProject/Python3/10.27/01.py)
#print(result)

#system() 执行系统命令(危险函数)
#result = os.system('ls -al')  #获取隐藏文件
#print(result)

#环境变量
'''
环境变量就是一些命令的集合
操作系统的环境变量就是操作系统在执行系统命令时搜索命令的目录的集合
'''
#getenv() 获取系统的环境变量
result = os.getenv('PATH')
print(result.split(':'))

#putenv() 将一个目录添加到环境变量中(临时增加仅对当前脚本有效)
#os.putenv('PATH','/home/sy/下载')
#os.system('syls')

#exit() 退出终端的命令

#os模块中的常用值
#curdir  表示当前文件夹   .表示当前文件夹  一般情况下可以省略
print(os.curdir)

#pardir  表示上一层文件夹   ..表示上一层文件夹  不可省略!
print(os.pardir)

#os.mkdir('../../../man')#相对路径  从当前目录开始查找
#os.mkdir('/home/sy/man1')#绝对路径  从根目录开始查找

#name 获取代表操作系统的名称字符串
print(os.name) #posix -> linux或者unix系统  nt -> window系统

#sep 获取系统路径间隔符号  window ->\    linux ->/
print(os.sep)

#extsep 获取文件名称和后缀之间的间隔符号  window & linux -> .
print(os.extsep)

#linesep  获取操作系统的换行符号  window -> \r\n  linux/unix -> \n
print(repr(os.linesep))



#导入os模块
import os

#以下内容都是os.path子模块中的内容

#abspath()  将相对路径转化为绝对路径
path = './boys'#相对
result = os.path.abspath(path)
print(result)

#dirname()  获取完整路径当中的目录部分  &  basename()获取完整路径当中的主体部分
path = '/home/sy/boys'
result = os.path.dirname(path)
print(result)

result = os.path.basename(path)
print(result)

#split() 将一个完整的路径切割成目录部分和主体部分
path = '/home/sy/boys'
result = os.path.split(path)
print(result)

#join() 将2个路径合并成一个
var1 = '/home/sy'
var2 = '000.py'
result = os.path.join(var1,var2)
print(result)

#splitext() 将一个路径切割成文件后缀和其他两个部分,主要用于获取文件的后缀
path = '/home/sy/000.py'
result = os.path.splitext(path)
print(result)

#getsize()  获取文件的大小
#path = '/home/sy/000.py'
#result = os.path.getsize(path)
#print(result)

#isfile() 检测是否是文件
path = '/home/sy/000.py'
result = os.path.isfile(path)
print(result)

#isdir()  检测是否是文件夹
result = os.path.isdir(path)
print(result)

#islink() 检测是否是链接
path = '/initrd.img.old'
result = os.path.islink(path)
print(result)

#getctime() 获取文件的创建时间 get create time
#getmtime() 获取文件的修改时间 get modify time
#getatime() 获取文件的访问时间 get active time

import time

filepath = '/home/sy/下载/chls'

result = os.path.getctime(filepath)
print(time.ctime(result))

result = os.path.getmtime(filepath)
print(time.ctime(result))

result = os.path.getatime(filepath)
print(time.ctime(result))

#exists() 检测某个路径是否真实存在
filepath = '/home/sy/下载/chls'
result = os.path.exists(filepath)
print(result)

#isabs() 检测一个路径是否是绝对路径
path = '/boys'
result = os.path.isabs(path)
print(result)

#samefile() 检测2个路径是否是同一个文件
path1 = '/home/sy/下载/001'
path2 = '../../../下载/001'
result = os.path.samefile(path1,path2)
print(result)


#os.environ 用于获取和设置系统环境变量的内置值
import os
#获取系统环境变量  getenv() 效果
print(os.environ['PATH'])

#设置系统环境变量 putenv()
os.environ['PATH'] += ':/home/sy/下载'
os.system('chls')

datetime模块


time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))

类和对象


#example
class Person:
	def eat(self):
		print("正在吃饭")
	def sleep(self):
		print("正在睡觉")
__init__(self,name,age)
#创建类的实例,首先调用该方法
__new__(cls,*args,**kw)
# 在类调用init方法时,new方法决定是否要用init方法,因为new可以调用其他类的方法,或者返回别的对象来作为本类的实例;
__对变量进行私有化,外部访问不了
__str__(self)
# 将一个类的实例变成str
__对方法进行私有化
__del__()
# 当程序结束后自动调用
dir(),__dir__()
# 展示一个类/对象的内部属性和函数

正则表达式


re.match(pattern, string, flags=0)
# 尝试从字符串的起始位置匹配一个模式,如果不是起始位置,返回None
# pattern 匹配的正则表达式
# string  要匹配的字符串
# flags   控制正则表达式的匹配方式
re.search(pattern, string, flags=0)
# 扫描整个字符串返回第一个成功的匹配
re.sub(pattern, repl, string, count=0, flags=0)
# 替换字符串中的匹配项
# pattern:正则中的模式字符串
# repl:替换的字符串或函数
# string:要被查找的字符串
# count:模式匹配后替换的最大次数,默认0表示替换所有的匹配
re.compile(pattern[, flags])
# 用于编译正则表达式
findall(string[, pos[, endpos]])
pattern = re.compile(r'\d+')   # 查找数字
result1 = pattern.findall('runoob 123 google 456')
# 找到正则表达式匹配的所有子串,返回一个列表

re模块


用于正则表达式匹配字符串

http请求


举例
在python中导入request包
发送http请求

import requests
# 发送Get请求
r = requests.get(url = "http://192.168.1.100"+"login?",params = p)
print(r.status_code) # 接口响应的状态码
print(r.text) # 接口的返回数据

参考文献


https://www.cnblogs.com/cnhkzyy/p/8908727.html
https://www.cnblogs.com/cnkemi/p/8671493.html
https://www.cnblogs.com/sunyang945/p/7900957.html
https://blog.csdn.net/mid_python/article/details/79161167
http://www.runoob.com/python/python-reg-expressions.html
https://www.jianshu.com/p/6422cd760998

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值