练习:
#将两个list,连接[(1,4),(2,5),(3,6)]:l1=[1,2,3] l2=[4,5,6]
l1=[1,2,3]
l2=[4,5,6]
l=[]
for i in range(3):
t=(l1[i],l2[i])
l.append(t)
print(l)
#生成二维数组[[0,1,2],[3,4,5],[6,7,8]]
result=[]
flag=[]
for i in range(9):
flag.append(i)
if len(flag)<3:
continue
else:
result.append(flag)
flag=[]
print(result)
#L中按照学生姓名和成绩排序L=[("Bob",75),("Adam",92),("Bart",66),("Lisa",88)]
L=[("Bob",75),("Adam",92),("Bart",66),("Lisa",88)]
def func(l):
return l[0] #用名字
#return l[1] 用成绩
print(sorted(L,key=func))
#L中按照学生姓名和成绩排序L=[("Bob",75),("Adam",92),("Bart",66),("Lisa",88)]
L=[("Bob",75),("Adam",92),("Bart",66),("Lisa",88)]
d={}
for i in L:
d[i[0]]=i[1]
print(d)
flag=sorted(d.values())
print(flag)
result=[]
for i in flag:
for key,value in d.items():
if value==i:
t=(key,value)
result.append(t)
print(result)
"""结果:
{'Bob': 75, 'Adam': 92, 'Bart': 66, 'Lisa': 88}
[66, 75, 88, 92]
[('Bart', 66), ('Bob', 75), ('Lisa', 88), ('Adam', 92)]
"""
#生成["z1","y2,"x3","w4","v5"]
result=[]
for i in range(1,6):
flag=ord("z")-i+1
c=str(chr(flag))+str(i)
result.append(c)
print(result)
os.walk
# encoding=utf-8
import os
# root表示当前被访问的目录名称
# dirs表示当前目录中所有的子目录名称(元祖)
# dirs表示当前目录中所有的文件名称(元祖)
# 最外层for实现了,每一个目录的遍历
txt_file_count=0
for root, dirs, files in os.walk("d:\\test", topdown=False):
print(u"当前目录:", root) # 打印目录绝对路径
for name in files: # 内层for实现了,遍历某一个目录中所有的文件名称
print(u'文件名:', os.path.join(root, name)) # 打印文件绝对路径
if os.path.splitext(name)[1]==".txt":#统计txt文件数量
txt_file_count+=1
files
for name in dirs: # 实现遍历某一个目录中的所有子目录名称
print(u'目录名:', name) # 打印目录绝对路径
print("*" * 20)
print(txt_file_count)
练习:
#统计一个目录下所有文件名和子目录文件名,不含后缀
import os
def get_all_filename(dir_path):
if not os.path.exists(dir_path):
print("%s该文件路径不存在" % dir_path)
return None
if not os.path.isdir(dir_path):
print("%s不是一个目录")
return None
filename=[]
for root,dirs,files in os.walk(dir_path):
for file in files:
filename.append(os.path.splitext(file)[0])
return filename
print(get_all_filename("d:\\test"))
#求一个文件路径下所有jpg文件的数量
import os
def get_jpg_filecount(dir_path):
if not os.path.exists(dir_path):
print("%s该文件路径不存在" % dir_path)
return None
if not os.path.isdir(dir_path):
print("%s不是一个目录")
return None
count=0
for root,dirs,files in os.walk(dir_path):
for file in files:
if file[-4:]==".jpg":
count+=1
return count
print(get_jpg_filecount("d:\\test"))
#求一个目录下txt的文件路径,并写入文件中
import os
def get_txt_filecount(dir_path):
if not os.path.exists(dir_path):
print("%s该文件路径不存在" % dir_path)
return None
if not os.path.isdir(dir_path):
print("%s不是一个目录")
return None
txt_dir=[]
for root,dirs,files in os.walk(dir_path):
for file in files:
if file[-4:]==".txt":
txt_dir.append(os.path.join(root,file))
return txt_dir
txt_dir=get_txt_filecount("d:\\test")
#写入
with open("d:\\aaa.txt","w") as fp:
fp.writelines(txt_dir)
import sys
sys.argv:将命令行的内容传入函数
练习:
#在文件的第二行后插入一行内容,且统计插入后文件的行数
>>> import os
>>> os.path.exists("a.py")
True
>>>
>>> fp=open("a.py","r+")
>>> content=fp.read()
>>> content
'#encoding=utf-8\nimport sys\nprint(sys.path)'
>>> fp.seek(0,0)
0
>>> content=fp.readlines()
>>> content
['#encoding=utf-8\n', 'import sys\n', 'print(sys.path)']
>>> content.insert(1,"I am a girl\n")
>>> content
['#encoding=utf-8\n', 'I am a girl\n', 'import sys\n', 'print(sys.path)']
>>> fp.tell()
44
>>> fp.seek(0,0)
0
>>> fp.writelines(content)
>>> fp.tell()
57
>>> fp.close()
练习:读一个文件,统计不重复单词有多少,再在另一个文件中写入每个单词及其出现次数。
SciPy is a collection of packages for mathematics, science, and engineering.
Pandas is a data analysis and modeling library.
IPython is a powerful interactive shell that features easy editing and recording of a work session, and supports visualizations and parallel computing.
The Software Carpentry Course teaches basic skills for scientific computing, running bootcamps and providing open-access teaching materials.
import os
if os.path.exists("d:\\test\\a.py"):
with open("d:\\test\\a.py") as fp:
content=fp.read()
content=content.replace(","," ")
content=content.replace("."," ")
word_list=content.split()
word_count={}
print("不重复单词个数:",len(set(word_list)))
for i in word_list:
if i not in word_count:
word_count[i]=1
else:
word_count[i]+=1
print("不重复单词个数:",len(word_count.keys()))
with open("d:\\test\\c.py","w") as fp:
for k,v in word_count.items():
fp.write("%s出现的个数是 %s \n" %(k,v))