python学习补充01
创始人
2025-06-01 06:27:29

文章目录

  • python 学习补充01
    • 1、python 读取文件的方法
      • 1.1、read()
      • 1.2、readline()
      • 1.3、readlines()
    • 2、python 拆分字符串:split() 函数
    • 3、python 去掉字符串空格
    • 4、python 命令行传入参数
      • 4.1、sys 模块
      • 4.2、 getopt 模块
      • 4.3、argparse 模块
    • 5、python 条件
    • 6、python 读写 csv 文件
      • 6.1、python DictReader 读写 csv 文件
        • 读取内容
        • 写入内容
      • 6.2、python csv 读写 csv 文件
    • 7、txt 文件处理
      • 7.1、写入浮点数到txt
      • 7.2、从 txt 文件提取数据到numpy 数组
      • 7.3、从 txt 文件读取数据到 list 中
    • 8、将输出信息写入文件中
      • 8.1方法1
      • 8.2、方法2
    • 9、reshape函数
    • 10、统计 两个数组相同元素个数
    • 11、shutil 模块
      • 创建和解压缩文件

python 学习补充01

1、python 读取文件的方法

1.1、read()

作用:一次读取文件的所有内容,放在一个大字符串中,及存在内存中

file_object = open('test.txt')		# 不要将open 放在 try 中,以防止打开失败,就不用关闭了
try:
file_context = file_object.read()	# file_context 是一个 string ,读取完后,就失去了对test.txt 的文件引用
# file_context = open(file).read().splitlines()		# file_context 是一个list,每行文本内容是list 中的一个元素
finally:
file_object.close()# 还可以使用 with 、contextlib 打开文件,且自动关闭文件,以防止打开的文件对象未关闭而占用内存

优点:

  • 方便、简单
  • 一次性读出文件放在一个大字符串中,速度最快
    缺点:
  • 文件过大的时候,占用内存会很慢

1.2、readline()

作用:逐行读取文本,结果是一个 list

with open(file) as f:line = f.readlins()while line:print(line)line = f.readline()

优点:

  • 占用内存小,逐行读取
    缺点:
  • 由于是逐行读取,速度慢

1.3、readlines()

作用:一次读取文本的所有内容,结果是一个 list

with open(file) as f:for line in f.readlines():print(line)

说明:这种方法读取的文本内容,每行文本结尾都会带有一个 “\n" 换行符(可以用 line.rstrip(‘\n’) 去掉换行符 )
优点:

  • 一次读取文本内容,速度快
    缺点:
  • 随着文本增大,占用内存会增多

2、python 拆分字符串:split() 函数

os.path.split() : 按照路径将文件名和路径分割开
split() : 拆分字符串。通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list)

# 函数说明
string.split(str="",num=string.count(str))[n]
# 参数说明:
## str: 分隔符,默认 空格,但不能为空("")。
## num: 表示分割次数。若存在num,则仅分割成 num+1 个字符串,并且每一个子字符串可以赋值给新的变量
## [n]:表示选取第 n 个分片
# 注意:当使用空格作为分隔符时,对于中间为空的项会自动忽略os.path.split("path")
# 参数说明:
## path:指一个文件的全路径作为参数
## 若给出的是一个目录和文件名,则输出路径和文件名
## 若给出的是一个目录名,则输出路径和空文件名 

示例

import retext = "3.14:15"
print(re.split('[.:]',text)

3、python 去掉字符串空格

str.strip() :去除字符串开头或结尾的空格
str.lstrip():去除字符串开头的空格
str.rstrip():去除字符串结尾的空格
str.replace(" ", “”) :去除全部空格
“”.join(str.split()) :去除全部空格

4、python 命令行传入参数

参考:python 获取命令行参数

4.1、sys 模块

import sysopt1 = sys.argv[0]	# argv[0] 表示文件本身路径,即执行脚本的名字,不做命令行参数
opt2 = sys.argv[1]

4.2、 getopt 模块

函数说明

options,args = getopt.getopt(args,shortopts,longopts=[])
# 参数(即右边括号中传入的参数)说明
## args: 一般是 sys.argv[1:]。过滤掉 sys.argv[0],它是执行脚本的名字,不算做命令行参数
## shortopts:短格式分析串。如"hp:i:" ,h 后面没有冒号,表示后面不带参数;p 和 i 后面带有冒号,表示后面带有参数
## longopts:长格式分析串列表。如["help","ip=","port="],help 后面没有等号,表示不带参数;ip 和 port 后面有等号,表示带参数# 返回值
## options:是以元组为元素的列表,每个元组的形式为:(选项串,附加参数),如:("-i","192.168.0.1")
## args:列表,其中的元素是哪些不含'-' 或 '--' 的参数

示例


import getopt
import sysdef main(argv):try:options,args = getopt.getopt(argv,"hp:i:",["help","ip=","port="])except getopt.GetoptError:sys.exit()for option,value in options:if option in ("-h","--help"):print("help")if option in ("-i","--ip"):print("ip is:{0}".format(value))if option in ("-p","--port"):print("port is:{0}".format(value))print("error args:{0}".format(args))if __name__ == '__main__':main(sys.argv[1:])############### run ############
$ $python3 test.py -i 192.168.0.1 -p 80 123 a
##### result
ip is:192.168.0.1
port is : 80
error args:['123','a']

4.3、argparse 模块

作用:用于解析命令行选项和参数的标准模块
使用步骤:

1、import argparse			# 导入模块
2、parser= argparse.ArgumentParser()		# 创建解析对象
3、parser.add_argument()		# 向该对象中添加使用到的命令行选项和参数
4、parser.parser_args()		# 解析命令行

示例

import argparsedef main(args):print("--address {0}".format(args.code_address))    #args.address会报错,因为指定了dest的值print("--flag {0}".format(args.flag))   		#如果命令行中该参数输入的值不在choices列表中,则报错print("--port {0}".format(args.port))   		#prot的类型为int类型,如果命令行中没有输入该选项则报错print("-l {0}".format(args.log))  			#如果命令行中输入该参数,则该值为True。因为为短格式"-l"指定了别名"--log",所以程序中用args.log来访问if __name__ == '__main__':parser = argparse.ArgumentParser(usage="it's usage tip.", description="help info.")parser.add_argument("--address", default=80, help="the port number.", dest="code_address")parser.add_argument("--flag", choices=['.txt', '.jpg', '.xml', '.png'], default=".txt", help="the file type")parser.add_argument("--port", type=int, required=True, help="the port number.")parser.add_argument("-l", "--log", default=False, action="store_true", help="active log info.")args = parser.parse_args()main(args)

5、python 条件

与:and
或:or

6、python 读写 csv 文件

读写内容:

idclass
05
14
213

6.1、python DictReader 读写 csv 文件

读取内容

import csvwith open('name.csv') as csvfile:reader = csv.DictReader(csvfile)for row in reader:# 循环打印数据的id 和 class 值print(row['id'],row['class'])# 打印结果:
0 5 
1 4
2 13

写入内容

import csvwith open('name.csv','w') as csvfile:writer = csv.DictWriter(csvfile,fieldnames=['id','class'])# 写入列标题,即 DictWriter 构造方法的 fieldnames 参数writer.writeheader()for data in datas:weiter.writerow({'id':data[0],'class':data[1]})

6.2、python csv 读写 csv 文件

import csvwith open('name.csv','w') as csvfile:writer = csv.writer(csvfile)f = open('files.txt','r')lines = f.readlines()for line in lines:line = line.split()writer.writerow(line)f.close()

7、txt 文件处理

7.1、写入浮点数到txt

with open('file_path/filename.txt','a') as file:write_str = '%f %f\n'%(float_data1,float_data2)file.write(write_str)

7.2、从 txt 文件提取数据到numpy 数组

a = numpy.loadtxt('file.txt')
b = reshape(a,(3,2,4))		# reshape到想要的形状

7.3、从 txt 文件读取数据到 list 中

with open('file.txt','r') as f:datas = f.readlines()	# 逐行读取数据for line in datas:data  = line.split()	# 将单个数据分隔开保存好num_data = map(float,data)	# 转化为浮点数 

8、将输出信息写入文件中

8.1方法1

mylog = open('mylog.log',mode='a',encoding='utf-8')
for i in range(10):print('Mylog file',file=mylog)
muylog.close

8.2、方法2

import sys
sys.stdout = open('mylog.log',mode = 'w',encoding='utf-8')for i in range(10):print('Mylog file')

9、reshape函数

可用于numpy 的 array 和 ndarray,pandas 的 dataframe 和 series(series 需要先用 series.value 将对象转化成 ndarray 结构)

reshape(-1,1)	# 重组成 任意行,一列

10、统计 两个数组相同元素个数

array1 = [1,2,3,4,5]
array2 = [1,3,3,5,5]# 两个数组维度相同时
len(set(array1) & set(array2))	# 统计两个数组相同元素个数,维度相同
print(set(array1) & set(array2))	# 输出两个数组相同元素# 两个数组维度不同时
print([x for x in array1 if x in array2])

11、shutil 模块

参考:[https://blog.csdn.net/weixin_41261833/article/details/108050152](Python模块——shutil 模块详解)
os 模块是 python 标准库中的一个重要模块,里面提供了对目录和文件的一般常用操作。
shutil 库作为 os 模块的补充,提供了复制、移动、删除、压缩、解压等操作。(注意:shutil 模块对压缩包的处理是调用 ZipFile 和 TarFile 两个模块进行的)
python_shutil模块

创建和解压缩文件

zipobj.write() : 创建一个压缩包
zipobj.namelist() : 读取压缩包中的文件信息
zipobj.extract() : 将压缩包中的单个文件,解压出来
zipobj.extractall(): 将压缩包中的所有文件解压出来# shutil 模块对于压缩包的处理,是调用 ZipFile 和 TarFile 两个模块进行的,需要导入
# 这里所说的压缩包,是指 ".zip" 格式的压缩包

示例

import zipfile
import os
file_list = os.listdir(os.getcwd())# 1、文件打包
with zipfile.ZipFile(r"myZip.zip", "w") as zipobj:for file in file_list:zipobj.write(file)# 2、读取压缩包中的文件
with zipfile.ZipFile("myZip.zip","r") as zipobj:print(zipobj.namelist())# 3、解压 压缩包 中的单个文件
dst = r"/home/usr/my_file"
with zipfile.ZipFile("myZip.zip", "r") as zipobj:zipobj.extract("file1", dst)# 4、将压缩包中的所有文件,解压出来
dst = r"/home/usr/my_file"
with zipfile.ZipFile("myZip.zip", "r") as zipobj:zipobj.extractall(dst)

上一篇:html(1)

下一篇:JavaEE-线程的状态

相关内容

热门资讯

汽车仪表盘报wrsherflu... 今天给各位分享汽车仪表盘报wrsherfluid的知识,其中也会对汽车仪表盘报警图标大全进行解释,如...
盐城火车站(盐城火车站时刻表查... 今天给各位分享盐城火车站的知识,其中也会对盐城火车站时刻表查询进行解释,如果能碰巧解决你现在面临的问...
小车几年报废(小车几年报废强制... 今天给各位分享小车几年报废的知识,其中也会对小车几年报废强制报废进行解释,如果能碰巧解决你现在面临的...
卡罗拉汽车之家(卡罗拉汽车之家... 今天给各位分享卡罗拉汽车之家的知识,其中也会对卡罗拉汽车之家报价及图片进行解释,如果能碰巧解决你现在...
k2186火车经过的站点(k2... 今天给各位分享k2186火车经过的站点的知识,其中也会对k2186火车经过的站点最新进行解释,如果能...
什么叫显示器(什么叫显示器梅花... 本篇文章极速百科给大家谈谈什么叫显示器,以及什么叫显示器梅花纹屏幕对应的知识点,希望对各位有所帮助,...
合肥到乌鲁木齐(合肥到乌鲁木齐... 今天给各位分享合肥到乌鲁木齐的知识,其中也会对合肥到乌鲁木齐多少公里进行解释,如果能碰巧解决你现在面...
g275高铁途经站点名称(高铁... 今天给各位分享g275高铁途经站点名称的知识,其中也会对高铁g257经过哪些车站进行解释,如果能碰巧...
车购税法(车辆购置税法) 车购... 今天给各位分享车购税法的知识,其中也会对车辆购置税法进行解释,如果能碰巧解决你现在面临的问题,别忘了...
沙漠风暴是什么意思(沙漠风暴是... 今天给各位分享沙漠风暴是什么意思的知识,其中也会对沙漠风暴是什么意思 男女之间进行解释,如果能碰巧解...
汽车音效均衡器怎么调(汽车音效... 本篇文章极速百科给大家谈谈汽车音效均衡器怎么调,以及汽车音效均衡器怎么调最好三段对应的知识点,希望对...
mcu是什么(mcu是什么意思... 今天给各位分享mcu是什么的知识,其中也会对mcu是什么意思进行解释,如果能碰巧解决你现在面临的问题...
关于英菲尼迪qx70的信息 英... 今天给各位分享英菲尼迪qx70的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注...
北京到济南的火车(北京到济南的... 今天给各位分享北京到济南的火车的知识,其中也会对北京到济南的火车票时刻表查询结果进行解释,如果能碰巧...
加油枪跳枪原理(加油枪跳枪原理... 本篇文章极速百科给大家谈谈加油枪跳枪原理,以及加油枪跳枪原理谁发明出来的对应的知识点,希望对各位有所...
奔驰s(奔驰s450新车报价2... 今天给各位分享奔驰s的知识,其中也会对奔驰s450新车报价2023进行解释,如果能碰巧解决你现在面临...
什么是对比色(什么是对比色画法... 本篇文章极速百科给大家谈谈什么是对比色,以及什么是对比色画法对应的知识点,希望对各位有所帮助,不要忘...
平安车险价格一览表(平安车险价... 今天给各位分享平安车险价格一览表的知识,其中也会对平安车险价格一览表车险进行解释,如果能碰巧解决你现...
飞机票改签扣多少钱(飞机票改签... 本篇文章极速百科给大家谈谈飞机票改签扣多少钱,以及飞机票改签扣多少钱费用对应的知识点,希望对各位有所...
广汽乘用车(广汽乘用车宜昌分公... 本篇文章极速百科给大家谈谈广汽乘用车,以及广汽乘用车宜昌分公司对应的知识点,希望对各位有所帮助,不要...
成都市机动车违章查询(成都市机... 今天给各位分享成都市机动车违章查询的知识,其中也会对成都市机动车违章查询官网进行解释,如果能碰巧解决...
四川人说老火什么意思(四川人的... 今天给各位分享四川人说老火什么意思的知识,其中也会对四川人的老火是什么意思进行解释,如果能碰巧解决你...
play的过去式是什么(pla... 本篇文章极速百科给大家谈谈play的过去式是什么,以及play的过去式英语怎么说对应的知识点,希望对...
网上查车主姓名(怎么能查车主姓... 本篇文章极速百科给大家谈谈网上查车主姓名,以及怎么能查车主姓名对应的知识点,希望对各位有所帮助,不要...
逃逸(逃逸保险公司理赔吗) 逃... 本篇文章极速百科给大家谈谈逃逸,以及逃逸保险公司理赔吗对应的知识点,希望对各位有所帮助,不要忘了收藏...
金华站(金华站是火车站还是高铁... 今天给各位分享金华站的知识,其中也会对金华站是火车站还是高铁站进行解释,如果能碰巧解决你现在面临的问...
人防车位能买吗(人防车位能买吗... 本篇文章极速百科给大家谈谈人防车位能买吗,以及人防车位能买吗上海对应的知识点,希望对各位有所帮助,不...
大虎山到锦州(大虎山到锦州的火... 今天给各位分享大虎山到锦州的知识,其中也会对大虎山到锦州的火车进行解释,如果能碰巧解决你现在面临的问...
江西离广东有多远(江西离广东有... 今天给各位分享江西离广东有多远的知识,其中也会对江西离广东有多远地图进行解释,如果能碰巧解决你现在面...
wednesday怎么读(we... 本篇文章极速百科给大家谈谈wednesday怎么读,以及wednesday怎么读音发音英语怎么读对应...