Python 函数习题
- #encoding=utf-8
- from urllib.request import urlopen
- import random
- import os
- '''
- 1. 定义一个fuc(url, folder_path)
- 获取url地址的内容,保存到folder_path的文件目录下,并随机生成一个文件名。
- '''
- def save_url_content(url,folder_path=None):
- if not (url.startswith('http://') or url.startswith('https://') ):
- return u'url地址不符合规格'
- if not os.path.isdir(folder_path):
- return u'folder_path非文件夹'
- d = urlopen(url)
- content = d.read()
- rand_filename = 'test_%s'%random.randint(1,1000)
- file_path = os.path.join(folder_path,rand_filename)
- d = open(file_path,'wb')
- d.write(content)
- d.close()
- return file_path
- print (save_url_content('http://www.baidu.com','tmp'))
- '''
- 3. 定义一个func(url),分析该url内容里有多少个链接。
- '''
- def get_url_count(url):
- if not (url.startswith('http://') or url.startswith('https://') ):
- return u'url地址不符合规格'
- d = urllib.urlopen(url)
- content = d.read()
- return len(content.split('<a href=')) - 1 # str 到bytes 而精致没解决
- print (get_url_count('http://hi.baidu.com/jxq61/item/149d29cc8d52513d4594168f'))
- '''
- 2. 定义一个func(folder_path),合并该目录下的所有文件,生成一个all.txt。
- '''
- def merge(folder_path):
- if not os.path.exists(folder_path):
- return 'not exists'
- for f in os.listdir(folder_path):
- file_path = os.path.join(folder_path,f)
- if os.path.isdir(file_path):
- merge(file_path)
- else:
- merge_file = open('merge_test','ab+')
- content = open(file_path,'rb').read()
- merge_file.write(content)
- merge_file.close()
- merge('tmp')
- '''
- 4. 定义一个func(url), 获取他?后的参数,并返回成一个dict。
- '''
- import urlparse
- # urlparse模块主要是把url拆分为6部分,并返回元组。
- # urllib.parse.urlparse(urlstring, scheme='', allow_fragments=True)
- def qs(url):
- query = urlparse.urlparse(url).query
- return dict([(k,v[0]) for k,v in urlparse.parse_qs(query).items()])
- print (qs('http://126.com'))
- print (qs('http://api/api?f=5&g=6&y=5'))
- print (qs('http://api/api?11=53'))
- '''
- 5. 定义一个func(folder),删除该folder下的所有文件。50421
- '''
- #使用递归去解决
- def delete(folder_path):##习题5
- if not os.path.exists(folder_path):
- return 'not exists'
- for f in os.listdir(folder_path):
- file_path = os.path.join(folder_path,f)
- if os.path.isdir(file_path):
- delete(file_path)
- else:
- os.remove(file_path)
- delete('/tmp/5')
Python 函数习题的更多相关文章
- Pass算子python 函数
Pass算子python 函数 函数 函数是代码的一种组织形式 函数应该能完成一项特定的工作,而且一般一个函数只完成一项工作 有些语言,分函数和过程两个概念,通俗解释是,有返回结果的是函数,无返回结果 ...
- python 函数之day3
一 函数的语法及特性 什么是函数? 定义:函数是一个功能通过一组语句的集合,由名字(函数名)将其封装起来的代码块,要想执行这个函数,只要调用其函数名即可. 特性: 减少重复代码 使程序变的可扩展 使程 ...
- Python函数作用域的查找顺序
函数作用域的LEGB顺序 1.什么是LEGB? L:local 函数内部作用域 E:enclosing 函数内部与内嵌函数之间 G:global 全局作用域 B:build-in 内置作用域 2.它们 ...
- Python函数讲解
Python函数
- Python函数信息
Python函数func的信息可以通过func.func_*和func.func_code来获取 一.先看看它们的应用吧: 1.获取原函数名称: 1 >>> def yes():pa ...
- Python函数参数默认值的陷阱和原理深究"
本文将介绍使用mutable对象作为Python函数参数默认值潜在的危害,以及其实现原理和设计目的 本博客已经迁移至: http://cenalulu.github.io/ 本篇博文已经迁移,阅读全文 ...
- Python开发【第四章】:Python函数剖析
一.Python函数剖析 1.函数的调用顺序 #!/usr/bin/env python # -*- coding:utf-8 -*- #-Author-Lian #函数错误的调用方式 def fun ...
- Python函数解析
对于Python的函数,我们需要记住的是: 1. 函数的默认返回值是None. 2. python是一个自上而下逐行解释并执行的语言.因此,函数的定义必须在函数被调用之前.同名的函数,后定义的会覆盖前 ...
- Python入门笔记(18):Python函数(1):基础部分
一.什么是函数.方法.过程 推荐阅读:http://www.cnblogs.com/snandy/archive/2011/08/29/2153871.html 一般程序设计语言包含两种基本的抽象:过 ...
随机推荐
- raw_in_fields
在admin后台类中加入raw_id_fields(只适用于外键)后,会显示外键的详细信息
- JAMstack 技术要点
1. 简要说明 Modern web development architecture based on client-side JavaScript, reusable APIs,and preb ...
- art-template前端高性能模板
template.js资源 /*!art-template - Template Engine | http://aui.github.com/artTemplate/*/!function(){fu ...
- Ubuntu15.10下Hadoop2.6.0伪分布式环境安装配置及Hadoop Streaming的体验
Ubuntu用的是Ubuntu15.10Beta2版本,正式的版本好像要到这个月的22号才发布.参考的资料主要是http://www.powerxing.com/install-hadoop-clus ...
- Java 传递可变参数和方法重载
形式:类型... 参数名 示例:public void show(int... a) {}; 可变参数在方法中被当作数组来处理 可变参数传值的四种方式: 一个值也不传,可变参数会接收到长度为0的数组 ...
- c# HttpWebResponse 调用WebApi
public static class WebApiCaller { public static string HttpPost(string url, string body) { try { // ...
- Data_Structure-绪论作业
一.作业题目 仿照三元组或复数的抽象数据类型写出有理数抽象数据类型的描述 (有理数是其分子.分母均为整数且分母不为零的分数). 有理数基本运算: 构造有理数T,元素e1,e2分别被赋以分子.分母值 销 ...
- 在rac集群上开启OEM
由于安装rac的时候没有开启oem,这里开启oem,方便管理 [oracle@rac01 ~]$ emca -config dbcontrol db -repos create -cluster ST ...
- Python Twisted架构英文版
原作出处:twisted-intro 作者:Dave 转载声明:版权归原作出处所有,转载只为让更多人看到这部优秀作品合集,如果侵权,请留言告知 Twisted Introduction This mu ...
- Android 4 学习(13):Local Broadcast Manager & Intent Filter
参考<Professional Android 4 Development> Local Broadcast Manager 简介 Local Broadcast Manager由Andr ...