#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 函数习题的更多相关文章

  1. Pass算子python 函数

    Pass算子python 函数 函数 函数是代码的一种组织形式 函数应该能完成一项特定的工作,而且一般一个函数只完成一项工作 有些语言,分函数和过程两个概念,通俗解释是,有返回结果的是函数,无返回结果 ...

  2. python 函数之day3

    一 函数的语法及特性 什么是函数? 定义:函数是一个功能通过一组语句的集合,由名字(函数名)将其封装起来的代码块,要想执行这个函数,只要调用其函数名即可. 特性: 减少重复代码 使程序变的可扩展 使程 ...

  3. Python函数作用域的查找顺序

    函数作用域的LEGB顺序 1.什么是LEGB? L:local 函数内部作用域 E:enclosing 函数内部与内嵌函数之间 G:global 全局作用域 B:build-in 内置作用域 2.它们 ...

  4. Python函数讲解

    Python函数

  5. Python函数信息

    Python函数func的信息可以通过func.func_*和func.func_code来获取 一.先看看它们的应用吧: 1.获取原函数名称: 1 >>> def yes():pa ...

  6. Python函数参数默认值的陷阱和原理深究"

    本文将介绍使用mutable对象作为Python函数参数默认值潜在的危害,以及其实现原理和设计目的 本博客已经迁移至: http://cenalulu.github.io/ 本篇博文已经迁移,阅读全文 ...

  7. Python开发【第四章】:Python函数剖析

    一.Python函数剖析 1.函数的调用顺序 #!/usr/bin/env python # -*- coding:utf-8 -*- #-Author-Lian #函数错误的调用方式 def fun ...

  8. Python函数解析

    对于Python的函数,我们需要记住的是: 1. 函数的默认返回值是None. 2. python是一个自上而下逐行解释并执行的语言.因此,函数的定义必须在函数被调用之前.同名的函数,后定义的会覆盖前 ...

  9. Python入门笔记(18):Python函数(1):基础部分

    一.什么是函数.方法.过程 推荐阅读:http://www.cnblogs.com/snandy/archive/2011/08/29/2153871.html 一般程序设计语言包含两种基本的抽象:过 ...

随机推荐

  1. 简述MVC模式

    <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8& ...

  2. (转)Oracle执行字符串

    declare v_out ); begin execute immediate 'select p_guid from c_itcomp where rownum = 1 ' into v_out; ...

  3. PyYAML和configparser模块讲解

    Python也可以很容易的处理ymal文档格式,只不过需要安装一个模块,参考文档:http://pyyaml.org/wiki/PyYAMLDocumentation ymal主要用于配置文件. Co ...

  4. bootstrap-datetimepicker如何只显示到日期

    bootstrap-datetimepicker 一般都是设置到时分秒,有时候并不需要,怎么处理呢? minView: "month", //选择日期后,不会再跳转去选择时分秒 1 ...

  5. redirect uri 参数错误 怎么办

    这种情况,多数是因为请求地址不合法所致. 去公众号中添加合法的地址. 这种地址需要满足一些条件. 设置地址 满足的条件 保证可以访问到安全文件 如果访问不到的话,将无法保存 这里是文件存放位置 经过这 ...

  6. git学习3 - 克隆远程库到本地 将本地库上传到git

    如何克隆远程版本库到本地 git clone URL 如何用命令将本地项目上传到git 1.(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库 (注意: cd C:/U ...

  7. TIMEQUEST学习之黑金动力(二)

    之一就是第一章,这是第二章.在开始之前,要对第一章内容说说我理解到的: (1)时序分析是节点对节点的分析.(2)这个latch edge是锁存上一个lunch edge输出的(满足建立关系的)值.(3 ...

  8. Visual C++中error spawning cl.exe解决方法

    点击“Tools”,选择“选项”,选择“选项”中的“目录” 目录的目录下有四个选项 需要对它们设置正确的路径 我是按照默认路径安装的 可执行文件: C:\Program Files\Microsoft ...

  9. Python下OS模块重命名方法renames

    在python中有很多强大的模块,其中我们经常要使用的就是OS模块,OS模块提供了超过200个方法来供我们使用,并且这些方法都是和数据处理相关的,这里介绍下重命名这个方法. OS的重命名方法是os.r ...

  10. Springboot项目打成jar包运行 和 打成war包 外部tomcat运行

    Jar打包方式运行 类型为jar时 <packaging>jar</packaging> 1.使用命令mvn clean  package 打包 2.使用java –jar 包 ...