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 一般程序设计语言包含两种基本的抽象:过 ...
随机推荐
- Android 比对APK的签名信息
https://www.jianshu.com/p/8583f6a966e2 在做App的时候经常会有验证apk是否为正版的需求,比如一些接入第三方支付的app,接入微信sdk也是需要apk签名信息的 ...
- 【转】使用JMeter进行负载测试——终极指南
使用JMeter进行负载测试——终极指南 这篇教程讨论的是JMeter,它是一款基于Java的.集合了几个应用程序.具有特定用途的负载和性能测试工具. 本篇主要涉及的内容: 解释一下JMeter的用途 ...
- java代码实现从键盘输入编号,输出价格,并且不再编号内的,无效输入!!!!
总结:请给我更好的建议 package com.badu; import java.util.Scanner; //从键盘输入次数,通过输入的编号,输出对应的的商品价格: public class t ...
- HDU 1878 欧拉回路(无向图的欧拉回路)
欧拉回路 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- Vue.js:template
ylbtech-Vue.js: 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 6.返回顶部 7.返回顶部 8.返回顶部 9.返回顶部 1 ...
- Window中的内存地址(小知识)
现在的编辑器大部分工作都是内存管理托管型,所以很少直接对Window的内存地址直接管理了. Window中的内存地址主要是以16进制数字体现的,当操作系统为32位时,那么每个内存地址为2的32次方,也 ...
- Python Twisted系列教程13:使用Deferred新功能实现新客户端
作者:dave@http://krondo.com/deferred-all-the-way-down/ 译者:杨晓伟(采用意译) 你可以从这里从头阅读这个系列. 介绍 回忆下第10部分中的客户端5 ...
- JAVA事件监听机制的实现
今天学习了java的事件编程机制,略有体会,先在此记下心得. 第一,首先明确几个概念. 事件源:一个产生或者触发事件的对象.事件:承载事件源状态改变时的信息对象.事件监听器接口:实际上就是一个类,该类 ...
- Libevent使用例子,从简单到复杂
转载请注明出处:http://blog.csdn.net/luotuo44/article/details/39670221 本文从简单到复杂,展示如何使用libevent.网上的许多例子都是只有服务 ...
- PHP的Enum(枚举)的实现
转载请保留原文地址:http://www.cnblogs.com/zsxfbj/p/php_enum.html PHP其实有Enum类库的,需要安装perl扩展,所以不是php的标准扩展,因此代码的实 ...