Site updated: 2020-01-19 12:07:37
127
archives/2018/01/index.html
Normal file
@@ -0,0 +1,127 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<head><meta name="generator" content="Hexo 3.9.0">
|
||||
<!-- Title -->
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="applicable-device" content="pc,mobile">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
||||
<meta name="author" content="flypython">
|
||||
<meta name="designer" content="flypython">
|
||||
<meta name="keywords" content="FlyPython - 专业的Python学习社区,flypython, 飞蟒,飞蟒Python,Python入门,Python自动化,Python日报">
|
||||
<meta property="og:title" content="FlyPython - 专业的Python学习社区">
|
||||
<meta property="og:site_name" content="http://www.flypython.com">
|
||||
|
||||
<meta property="og:description" content="FlyPython是提供一站式Python编程学习的组织,我们致力于为用户提供高效,有趣的学习环境,打造专注于Python的中文学习社区">
|
||||
<meta name="description" content="FlyPython是提供一站式Python编程学习的组织,我们致力于为用户提供高效,有趣的学习环境,打造专注于Python的中文学习社区">
|
||||
|
||||
<meta name="rating" content="general">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="format-detection" content="telephone=yes">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="robots" content="index, follow">
|
||||
<link rel="icon" href="/images/favicon.ico">
|
||||
<title>FlyPython - 专业的Python学习社区</title>
|
||||
<link rel="stylesheet" href="/css/f25.css">
|
||||
<link rel="stylesheet" href="/css/highlight.css">
|
||||
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-147288599-1');
|
||||
</script>
|
||||
|
||||
</head>
|
||||
</head>
|
||||
<body>
|
||||
<header class="wrapper header-wrapper">
|
||||
<div class="container header-nav-wrapper">
|
||||
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
|
||||
<nav class="nav-wrapper">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
<span class="btn-menu" id="J_header_menu">
|
||||
<div class="inner">
|
||||
<span class="line line-01"></span>
|
||||
<span class="line line-02"></span>
|
||||
<span class="line line-03"></span>
|
||||
</div>
|
||||
</span>
|
||||
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
|
||||
<nav class="wrapper mb-nav-container">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<section class="body-wrapper">
|
||||
<section class="banner-wrapper">
|
||||
<div class="container banner-container"></div>
|
||||
</section>
|
||||
<section class="wrapper menu-wrapper">
|
||||
<nav class="container">
|
||||
<a href="/" class="active">全部文章</a><a href="/fly/Python入门/" class="" title="Python入门">Python入门</a><a href="/fly/Python新特性/" class="" title="Python新特性">Python新特性</a><a href="/fly/自然语言处理/" class="" title="自然语言处理">自然语言处理</a><a href="/fly/自动化办公/" class="" title="自动化办公">自动化办公</a>
|
||||
</nav>
|
||||
</section>
|
||||
|
||||
<div class="wrapper index-wrapper">
|
||||
<ul class="container list-container">
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/about/" class="wrapper post-i-link" title="关于我们">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/flypython.png" alt="关于我们">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="关于我们">关于我们</h3>
|
||||
<p class="wrapper subtitle">
|
||||
关于飞蟒Python
|
||||
</p>
|
||||
<div class="wrapper time">2018-01-01</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="tips-top-wrapper">
|
||||
<span class="tip-top-container" onclick="scrollToWindowTop()">
|
||||
<span class="l-bar"></span>
|
||||
<span class="r-bar"></span>
|
||||
</span>
|
||||
</div>
|
||||
<footer class="wrapper footer-wrapper">
|
||||
<div class="container"><span class="copyright">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
127
archives/2018/index.html
Normal file
@@ -0,0 +1,127 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<head><meta name="generator" content="Hexo 3.9.0">
|
||||
<!-- Title -->
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="applicable-device" content="pc,mobile">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
||||
<meta name="author" content="flypython">
|
||||
<meta name="designer" content="flypython">
|
||||
<meta name="keywords" content="FlyPython - 专业的Python学习社区,flypython, 飞蟒,飞蟒Python,Python入门,Python自动化,Python日报">
|
||||
<meta property="og:title" content="FlyPython - 专业的Python学习社区">
|
||||
<meta property="og:site_name" content="http://www.flypython.com">
|
||||
|
||||
<meta property="og:description" content="FlyPython是提供一站式Python编程学习的组织,我们致力于为用户提供高效,有趣的学习环境,打造专注于Python的中文学习社区">
|
||||
<meta name="description" content="FlyPython是提供一站式Python编程学习的组织,我们致力于为用户提供高效,有趣的学习环境,打造专注于Python的中文学习社区">
|
||||
|
||||
<meta name="rating" content="general">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="format-detection" content="telephone=yes">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="robots" content="index, follow">
|
||||
<link rel="icon" href="/images/favicon.ico">
|
||||
<title>FlyPython - 专业的Python学习社区</title>
|
||||
<link rel="stylesheet" href="/css/f25.css">
|
||||
<link rel="stylesheet" href="/css/highlight.css">
|
||||
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-147288599-1');
|
||||
</script>
|
||||
|
||||
</head>
|
||||
</head>
|
||||
<body>
|
||||
<header class="wrapper header-wrapper">
|
||||
<div class="container header-nav-wrapper">
|
||||
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
|
||||
<nav class="nav-wrapper">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
<span class="btn-menu" id="J_header_menu">
|
||||
<div class="inner">
|
||||
<span class="line line-01"></span>
|
||||
<span class="line line-02"></span>
|
||||
<span class="line line-03"></span>
|
||||
</div>
|
||||
</span>
|
||||
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
|
||||
<nav class="wrapper mb-nav-container">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<section class="body-wrapper">
|
||||
<section class="banner-wrapper">
|
||||
<div class="container banner-container"></div>
|
||||
</section>
|
||||
<section class="wrapper menu-wrapper">
|
||||
<nav class="container">
|
||||
<a href="/" class="active">全部文章</a><a href="/fly/Python入门/" class="" title="Python入门">Python入门</a><a href="/fly/Python新特性/" class="" title="Python新特性">Python新特性</a><a href="/fly/自然语言处理/" class="" title="自然语言处理">自然语言处理</a><a href="/fly/自动化办公/" class="" title="自动化办公">自动化办公</a>
|
||||
</nav>
|
||||
</section>
|
||||
|
||||
<div class="wrapper index-wrapper">
|
||||
<ul class="container list-container">
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/about/" class="wrapper post-i-link" title="关于我们">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/flypython.png" alt="关于我们">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="关于我们">关于我们</h3>
|
||||
<p class="wrapper subtitle">
|
||||
关于飞蟒Python
|
||||
</p>
|
||||
<div class="wrapper time">2018-01-01</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="tips-top-wrapper">
|
||||
<span class="tip-top-container" onclick="scrollToWindowTop()">
|
||||
<span class="l-bar"></span>
|
||||
<span class="r-bar"></span>
|
||||
</span>
|
||||
</div>
|
||||
<footer class="wrapper footer-wrapper">
|
||||
<div class="container"><span class="copyright">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
179
archives/2019/01/index.html
Normal file
@@ -0,0 +1,179 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<head><meta name="generator" content="Hexo 3.9.0">
|
||||
<!-- Title -->
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="applicable-device" content="pc,mobile">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
||||
<meta name="author" content="flypython">
|
||||
<meta name="designer" content="flypython">
|
||||
<meta name="keywords" content="FlyPython - 专业的Python学习社区,flypython, 飞蟒,飞蟒Python,Python入门,Python自动化,Python日报">
|
||||
<meta property="og:title" content="FlyPython - 专业的Python学习社区">
|
||||
<meta property="og:site_name" content="http://www.flypython.com">
|
||||
|
||||
<meta property="og:description" content="FlyPython是提供一站式Python编程学习的组织,我们致力于为用户提供高效,有趣的学习环境,打造专注于Python的中文学习社区">
|
||||
<meta name="description" content="FlyPython是提供一站式Python编程学习的组织,我们致力于为用户提供高效,有趣的学习环境,打造专注于Python的中文学习社区">
|
||||
|
||||
<meta name="rating" content="general">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="format-detection" content="telephone=yes">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="robots" content="index, follow">
|
||||
<link rel="icon" href="/images/favicon.ico">
|
||||
<title>FlyPython - 专业的Python学习社区</title>
|
||||
<link rel="stylesheet" href="/css/f25.css">
|
||||
<link rel="stylesheet" href="/css/highlight.css">
|
||||
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-147288599-1');
|
||||
</script>
|
||||
|
||||
</head>
|
||||
</head>
|
||||
<body>
|
||||
<header class="wrapper header-wrapper">
|
||||
<div class="container header-nav-wrapper">
|
||||
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
|
||||
<nav class="nav-wrapper">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
<span class="btn-menu" id="J_header_menu">
|
||||
<div class="inner">
|
||||
<span class="line line-01"></span>
|
||||
<span class="line line-02"></span>
|
||||
<span class="line line-03"></span>
|
||||
</div>
|
||||
</span>
|
||||
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
|
||||
<nav class="wrapper mb-nav-container">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<section class="body-wrapper">
|
||||
<section class="banner-wrapper">
|
||||
<div class="container banner-container"></div>
|
||||
</section>
|
||||
<section class="wrapper menu-wrapper">
|
||||
<nav class="container">
|
||||
<a href="/" class="active">全部文章</a><a href="/fly/Python入门/" class="" title="Python入门">Python入门</a><a href="/fly/Python新特性/" class="" title="Python新特性">Python新特性</a><a href="/fly/自然语言处理/" class="" title="自然语言处理">自然语言处理</a><a href="/fly/自动化办公/" class="" title="自动化办公">自动化办公</a>
|
||||
</nav>
|
||||
</section>
|
||||
|
||||
<div class="wrapper index-wrapper">
|
||||
<ul class="container list-container">
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-oa-05/" class="wrapper post-i-link" title="Python读取PDF图片">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/oa4.jpg" alt="Python读取PDF图片">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python读取PDF图片">Python读取PDF图片</h3>
|
||||
<p class="wrapper subtitle">
|
||||
极简Python自动化办公系列
|
||||
</p>
|
||||
<div class="wrapper time">2019-01-05</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-oa-04/" class="wrapper post-i-link" title="Python读取PDF文字和表格">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/oa4.jpg" alt="Python读取PDF文字和表格">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python读取PDF文字和表格">Python读取PDF文字和表格</h3>
|
||||
<p class="wrapper subtitle">
|
||||
极简Python自动化办公系列
|
||||
</p>
|
||||
<div class="wrapper time">2019-01-04</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-oa-03/" class="wrapper post-i-link" title="Python批量转换任意文档格式">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/oa3.jpg" alt="Python批量转换任意文档格式">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python批量转换任意文档格式">Python批量转换任意文档格式</h3>
|
||||
<p class="wrapper subtitle">
|
||||
极简Python自动化办公系列
|
||||
</p>
|
||||
<div class="wrapper time">2019-01-03</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-oa-02/" class="wrapper post-i-link" title="Python写入Word文档">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/oa2.jpg" alt="Python写入Word文档">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python写入Word文档">Python写入Word文档</h3>
|
||||
<p class="wrapper subtitle">
|
||||
极简Python自动化办公系列
|
||||
</p>
|
||||
<div class="wrapper time">2019-01-02</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-oa-01/" class="wrapper post-i-link" title="Python写入Excel表格">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/oa1.jpg" alt="Python写入Excel表格">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python写入Excel表格">Python写入Excel表格</h3>
|
||||
<p class="wrapper subtitle">
|
||||
极简Python自动化办公系列
|
||||
</p>
|
||||
<div class="wrapper time">2019-01-01</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="tips-top-wrapper">
|
||||
<span class="tip-top-container" onclick="scrollToWindowTop()">
|
||||
<span class="l-bar"></span>
|
||||
<span class="r-bar"></span>
|
||||
</span>
|
||||
</div>
|
||||
<footer class="wrapper footer-wrapper">
|
||||
<div class="container"><span class="copyright">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
153
archives/2019/02/index.html
Normal file
@@ -0,0 +1,153 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<head><meta name="generator" content="Hexo 3.9.0">
|
||||
<!-- Title -->
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="applicable-device" content="pc,mobile">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
||||
<meta name="author" content="flypython">
|
||||
<meta name="designer" content="flypython">
|
||||
<meta name="keywords" content="FlyPython - 专业的Python学习社区,flypython, 飞蟒,飞蟒Python,Python入门,Python自动化,Python日报">
|
||||
<meta property="og:title" content="FlyPython - 专业的Python学习社区">
|
||||
<meta property="og:site_name" content="http://www.flypython.com">
|
||||
|
||||
<meta property="og:description" content="FlyPython是提供一站式Python编程学习的组织,我们致力于为用户提供高效,有趣的学习环境,打造专注于Python的中文学习社区">
|
||||
<meta name="description" content="FlyPython是提供一站式Python编程学习的组织,我们致力于为用户提供高效,有趣的学习环境,打造专注于Python的中文学习社区">
|
||||
|
||||
<meta name="rating" content="general">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="format-detection" content="telephone=yes">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="robots" content="index, follow">
|
||||
<link rel="icon" href="/images/favicon.ico">
|
||||
<title>FlyPython - 专业的Python学习社区</title>
|
||||
<link rel="stylesheet" href="/css/f25.css">
|
||||
<link rel="stylesheet" href="/css/highlight.css">
|
||||
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-147288599-1');
|
||||
</script>
|
||||
|
||||
</head>
|
||||
</head>
|
||||
<body>
|
||||
<header class="wrapper header-wrapper">
|
||||
<div class="container header-nav-wrapper">
|
||||
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
|
||||
<nav class="nav-wrapper">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
<span class="btn-menu" id="J_header_menu">
|
||||
<div class="inner">
|
||||
<span class="line line-01"></span>
|
||||
<span class="line line-02"></span>
|
||||
<span class="line line-03"></span>
|
||||
</div>
|
||||
</span>
|
||||
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
|
||||
<nav class="wrapper mb-nav-container">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<section class="body-wrapper">
|
||||
<section class="banner-wrapper">
|
||||
<div class="container banner-container"></div>
|
||||
</section>
|
||||
<section class="wrapper menu-wrapper">
|
||||
<nav class="container">
|
||||
<a href="/" class="active">全部文章</a><a href="/fly/Python入门/" class="" title="Python入门">Python入门</a><a href="/fly/Python新特性/" class="" title="Python新特性">Python新特性</a><a href="/fly/自然语言处理/" class="" title="自然语言处理">自然语言处理</a><a href="/fly/自动化办公/" class="" title="自动化办公">自动化办公</a>
|
||||
</nav>
|
||||
</section>
|
||||
|
||||
<div class="wrapper index-wrapper">
|
||||
<ul class="container list-container">
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-tutorial-03/" class="wrapper post-i-link" title="Python正则15分钟入门">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/tutorial3.png" alt="Python正则15分钟入门">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python正则15分钟入门">Python正则15分钟入门</h3>
|
||||
<p class="wrapper subtitle">
|
||||
Python入门教程
|
||||
</p>
|
||||
<div class="wrapper time">2019-02-03</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-tutorial-02/" class="wrapper post-i-link" title="潘石屹:我们为什么要学习Python语言?">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/tutorial2.png" alt="潘石屹:我们为什么要学习Python语言?">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="潘石屹:我们为什么要学习Python语言?">潘石屹:我们为什么要学习Python语言?</h3>
|
||||
<p class="wrapper subtitle">
|
||||
Python入门教程
|
||||
</p>
|
||||
<div class="wrapper time">2019-02-02</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-tutorial-01/" class="wrapper post-i-link" title="你是如何自学Python的?">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/tutorial1.png" alt="你是如何自学Python的?">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="你是如何自学Python的?">你是如何自学Python的?</h3>
|
||||
<p class="wrapper subtitle">
|
||||
Python入门教程
|
||||
</p>
|
||||
<div class="wrapper time">2019-02-01</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="tips-top-wrapper">
|
||||
<span class="tip-top-container" onclick="scrollToWindowTop()">
|
||||
<span class="l-bar"></span>
|
||||
<span class="r-bar"></span>
|
||||
</span>
|
||||
</div>
|
||||
<footer class="wrapper footer-wrapper">
|
||||
<div class="container"><span class="copyright">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
127
archives/2019/03/index.html
Normal file
@@ -0,0 +1,127 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<head><meta name="generator" content="Hexo 3.9.0">
|
||||
<!-- Title -->
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="applicable-device" content="pc,mobile">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
||||
<meta name="author" content="flypython">
|
||||
<meta name="designer" content="flypython">
|
||||
<meta name="keywords" content="FlyPython - 专业的Python学习社区,flypython, 飞蟒,飞蟒Python,Python入门,Python自动化,Python日报">
|
||||
<meta property="og:title" content="FlyPython - 专业的Python学习社区">
|
||||
<meta property="og:site_name" content="http://www.flypython.com">
|
||||
|
||||
<meta property="og:description" content="FlyPython是提供一站式Python编程学习的组织,我们致力于为用户提供高效,有趣的学习环境,打造专注于Python的中文学习社区">
|
||||
<meta name="description" content="FlyPython是提供一站式Python编程学习的组织,我们致力于为用户提供高效,有趣的学习环境,打造专注于Python的中文学习社区">
|
||||
|
||||
<meta name="rating" content="general">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="format-detection" content="telephone=yes">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="robots" content="index, follow">
|
||||
<link rel="icon" href="/images/favicon.ico">
|
||||
<title>FlyPython - 专业的Python学习社区</title>
|
||||
<link rel="stylesheet" href="/css/f25.css">
|
||||
<link rel="stylesheet" href="/css/highlight.css">
|
||||
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-147288599-1');
|
||||
</script>
|
||||
|
||||
</head>
|
||||
</head>
|
||||
<body>
|
||||
<header class="wrapper header-wrapper">
|
||||
<div class="container header-nav-wrapper">
|
||||
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
|
||||
<nav class="nav-wrapper">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
<span class="btn-menu" id="J_header_menu">
|
||||
<div class="inner">
|
||||
<span class="line line-01"></span>
|
||||
<span class="line line-02"></span>
|
||||
<span class="line line-03"></span>
|
||||
</div>
|
||||
</span>
|
||||
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
|
||||
<nav class="wrapper mb-nav-container">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<section class="body-wrapper">
|
||||
<section class="banner-wrapper">
|
||||
<div class="container banner-container"></div>
|
||||
</section>
|
||||
<section class="wrapper menu-wrapper">
|
||||
<nav class="container">
|
||||
<a href="/" class="active">全部文章</a><a href="/fly/Python入门/" class="" title="Python入门">Python入门</a><a href="/fly/Python新特性/" class="" title="Python新特性">Python新特性</a><a href="/fly/自然语言处理/" class="" title="自然语言处理">自然语言处理</a><a href="/fly/自动化办公/" class="" title="自动化办公">自动化办公</a>
|
||||
</nav>
|
||||
</section>
|
||||
|
||||
<div class="wrapper index-wrapper">
|
||||
<ul class="container list-container">
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-nlp-01/" class="wrapper post-i-link" title="使用 Python 生成《红楼梦》词云">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/nlp1.png" alt="使用 Python 生成《红楼梦》词云">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="使用 Python 生成《红楼梦》词云">使用 Python 生成《红楼梦》词云</h3>
|
||||
<p class="wrapper subtitle">
|
||||
Python自然语言处理教程
|
||||
</p>
|
||||
<div class="wrapper time">2019-03-01</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="tips-top-wrapper">
|
||||
<span class="tip-top-container" onclick="scrollToWindowTop()">
|
||||
<span class="l-bar"></span>
|
||||
<span class="r-bar"></span>
|
||||
</span>
|
||||
</div>
|
||||
<footer class="wrapper footer-wrapper">
|
||||
<div class="container"><span class="copyright">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
140
archives/2019/04/index.html
Normal file
@@ -0,0 +1,140 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<head><meta name="generator" content="Hexo 3.9.0">
|
||||
<!-- Title -->
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="applicable-device" content="pc,mobile">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
||||
<meta name="author" content="flypython">
|
||||
<meta name="designer" content="flypython">
|
||||
<meta name="keywords" content="FlyPython - 专业的Python学习社区,flypython, 飞蟒,飞蟒Python,Python入门,Python自动化,Python日报">
|
||||
<meta property="og:title" content="FlyPython - 专业的Python学习社区">
|
||||
<meta property="og:site_name" content="http://www.flypython.com">
|
||||
|
||||
<meta property="og:description" content="FlyPython是提供一站式Python编程学习的组织,我们致力于为用户提供高效,有趣的学习环境,打造专注于Python的中文学习社区">
|
||||
<meta name="description" content="FlyPython是提供一站式Python编程学习的组织,我们致力于为用户提供高效,有趣的学习环境,打造专注于Python的中文学习社区">
|
||||
|
||||
<meta name="rating" content="general">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="format-detection" content="telephone=yes">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="robots" content="index, follow">
|
||||
<link rel="icon" href="/images/favicon.ico">
|
||||
<title>FlyPython - 专业的Python学习社区</title>
|
||||
<link rel="stylesheet" href="/css/f25.css">
|
||||
<link rel="stylesheet" href="/css/highlight.css">
|
||||
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-147288599-1');
|
||||
</script>
|
||||
|
||||
</head>
|
||||
</head>
|
||||
<body>
|
||||
<header class="wrapper header-wrapper">
|
||||
<div class="container header-nav-wrapper">
|
||||
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
|
||||
<nav class="nav-wrapper">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
<span class="btn-menu" id="J_header_menu">
|
||||
<div class="inner">
|
||||
<span class="line line-01"></span>
|
||||
<span class="line line-02"></span>
|
||||
<span class="line line-03"></span>
|
||||
</div>
|
||||
</span>
|
||||
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
|
||||
<nav class="wrapper mb-nav-container">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<section class="body-wrapper">
|
||||
<section class="banner-wrapper">
|
||||
<div class="container banner-container"></div>
|
||||
</section>
|
||||
<section class="wrapper menu-wrapper">
|
||||
<nav class="container">
|
||||
<a href="/" class="active">全部文章</a><a href="/fly/Python入门/" class="" title="Python入门">Python入门</a><a href="/fly/Python新特性/" class="" title="Python新特性">Python新特性</a><a href="/fly/自然语言处理/" class="" title="自然语言处理">自然语言处理</a><a href="/fly/自动化办公/" class="" title="自动化办公">自动化办公</a>
|
||||
</nav>
|
||||
</section>
|
||||
|
||||
<div class="wrapper index-wrapper">
|
||||
<ul class="container list-container">
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-new-02/" class="wrapper post-i-link" title="Python 3.8新特性——仅限位置形参">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/new-02.png" alt="Python 3.8新特性——仅限位置形参">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python 3.8新特性——仅限位置形参">Python 3.8新特性——仅限位置形参</h3>
|
||||
<p class="wrapper subtitle">
|
||||
介绍Python语言新的特性
|
||||
</p>
|
||||
<div class="wrapper time">2019-04-02</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-new-01/" class="wrapper post-i-link" title="Python 3.8新特性——赋值表达式">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/new-01.png" alt="Python 3.8新特性——赋值表达式">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python 3.8新特性——赋值表达式">Python 3.8新特性——赋值表达式</h3>
|
||||
<p class="wrapper subtitle">
|
||||
介绍Python语言新的特性
|
||||
</p>
|
||||
<div class="wrapper time">2019-04-01</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="tips-top-wrapper">
|
||||
<span class="tip-top-container" onclick="scrollToWindowTop()">
|
||||
<span class="l-bar"></span>
|
||||
<span class="r-bar"></span>
|
||||
</span>
|
||||
</div>
|
||||
<footer class="wrapper footer-wrapper">
|
||||
<div class="container"><span class="copyright">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
257
archives/2019/index.html
Normal file
@@ -0,0 +1,257 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<head><meta name="generator" content="Hexo 3.9.0">
|
||||
<!-- Title -->
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="applicable-device" content="pc,mobile">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
||||
<meta name="author" content="flypython">
|
||||
<meta name="designer" content="flypython">
|
||||
<meta name="keywords" content="FlyPython - 专业的Python学习社区,flypython, 飞蟒,飞蟒Python,Python入门,Python自动化,Python日报">
|
||||
<meta property="og:title" content="FlyPython - 专业的Python学习社区">
|
||||
<meta property="og:site_name" content="http://www.flypython.com">
|
||||
|
||||
<meta property="og:description" content="FlyPython是提供一站式Python编程学习的组织,我们致力于为用户提供高效,有趣的学习环境,打造专注于Python的中文学习社区">
|
||||
<meta name="description" content="FlyPython是提供一站式Python编程学习的组织,我们致力于为用户提供高效,有趣的学习环境,打造专注于Python的中文学习社区">
|
||||
|
||||
<meta name="rating" content="general">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="format-detection" content="telephone=yes">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="robots" content="index, follow">
|
||||
<link rel="icon" href="/images/favicon.ico">
|
||||
<title>FlyPython - 专业的Python学习社区</title>
|
||||
<link rel="stylesheet" href="/css/f25.css">
|
||||
<link rel="stylesheet" href="/css/highlight.css">
|
||||
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-147288599-1');
|
||||
</script>
|
||||
|
||||
</head>
|
||||
</head>
|
||||
<body>
|
||||
<header class="wrapper header-wrapper">
|
||||
<div class="container header-nav-wrapper">
|
||||
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
|
||||
<nav class="nav-wrapper">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
<span class="btn-menu" id="J_header_menu">
|
||||
<div class="inner">
|
||||
<span class="line line-01"></span>
|
||||
<span class="line line-02"></span>
|
||||
<span class="line line-03"></span>
|
||||
</div>
|
||||
</span>
|
||||
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
|
||||
<nav class="wrapper mb-nav-container">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<section class="body-wrapper">
|
||||
<section class="banner-wrapper">
|
||||
<div class="container banner-container"></div>
|
||||
</section>
|
||||
<section class="wrapper menu-wrapper">
|
||||
<nav class="container">
|
||||
<a href="/" class="active">全部文章</a><a href="/fly/Python入门/" class="" title="Python入门">Python入门</a><a href="/fly/Python新特性/" class="" title="Python新特性">Python新特性</a><a href="/fly/自然语言处理/" class="" title="自然语言处理">自然语言处理</a><a href="/fly/自动化办公/" class="" title="自动化办公">自动化办公</a>
|
||||
</nav>
|
||||
</section>
|
||||
|
||||
<div class="wrapper index-wrapper">
|
||||
<ul class="container list-container">
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-new-02/" class="wrapper post-i-link" title="Python 3.8新特性——仅限位置形参">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/new-02.png" alt="Python 3.8新特性——仅限位置形参">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python 3.8新特性——仅限位置形参">Python 3.8新特性——仅限位置形参</h3>
|
||||
<p class="wrapper subtitle">
|
||||
介绍Python语言新的特性
|
||||
</p>
|
||||
<div class="wrapper time">2019-04-02</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-new-01/" class="wrapper post-i-link" title="Python 3.8新特性——赋值表达式">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/new-01.png" alt="Python 3.8新特性——赋值表达式">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python 3.8新特性——赋值表达式">Python 3.8新特性——赋值表达式</h3>
|
||||
<p class="wrapper subtitle">
|
||||
介绍Python语言新的特性
|
||||
</p>
|
||||
<div class="wrapper time">2019-04-01</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-nlp-01/" class="wrapper post-i-link" title="使用 Python 生成《红楼梦》词云">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/nlp1.png" alt="使用 Python 生成《红楼梦》词云">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="使用 Python 生成《红楼梦》词云">使用 Python 生成《红楼梦》词云</h3>
|
||||
<p class="wrapper subtitle">
|
||||
Python自然语言处理教程
|
||||
</p>
|
||||
<div class="wrapper time">2019-03-01</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-tutorial-03/" class="wrapper post-i-link" title="Python正则15分钟入门">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/tutorial3.png" alt="Python正则15分钟入门">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python正则15分钟入门">Python正则15分钟入门</h3>
|
||||
<p class="wrapper subtitle">
|
||||
Python入门教程
|
||||
</p>
|
||||
<div class="wrapper time">2019-02-03</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-tutorial-02/" class="wrapper post-i-link" title="潘石屹:我们为什么要学习Python语言?">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/tutorial2.png" alt="潘石屹:我们为什么要学习Python语言?">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="潘石屹:我们为什么要学习Python语言?">潘石屹:我们为什么要学习Python语言?</h3>
|
||||
<p class="wrapper subtitle">
|
||||
Python入门教程
|
||||
</p>
|
||||
<div class="wrapper time">2019-02-02</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-tutorial-01/" class="wrapper post-i-link" title="你是如何自学Python的?">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/tutorial1.png" alt="你是如何自学Python的?">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="你是如何自学Python的?">你是如何自学Python的?</h3>
|
||||
<p class="wrapper subtitle">
|
||||
Python入门教程
|
||||
</p>
|
||||
<div class="wrapper time">2019-02-01</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-oa-05/" class="wrapper post-i-link" title="Python读取PDF图片">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/oa4.jpg" alt="Python读取PDF图片">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python读取PDF图片">Python读取PDF图片</h3>
|
||||
<p class="wrapper subtitle">
|
||||
极简Python自动化办公系列
|
||||
</p>
|
||||
<div class="wrapper time">2019-01-05</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-oa-04/" class="wrapper post-i-link" title="Python读取PDF文字和表格">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/oa4.jpg" alt="Python读取PDF文字和表格">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python读取PDF文字和表格">Python读取PDF文字和表格</h3>
|
||||
<p class="wrapper subtitle">
|
||||
极简Python自动化办公系列
|
||||
</p>
|
||||
<div class="wrapper time">2019-01-04</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-oa-03/" class="wrapper post-i-link" title="Python批量转换任意文档格式">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/oa3.jpg" alt="Python批量转换任意文档格式">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python批量转换任意文档格式">Python批量转换任意文档格式</h3>
|
||||
<p class="wrapper subtitle">
|
||||
极简Python自动化办公系列
|
||||
</p>
|
||||
<div class="wrapper time">2019-01-03</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-oa-02/" class="wrapper post-i-link" title="Python写入Word文档">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/oa2.jpg" alt="Python写入Word文档">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python写入Word文档">Python写入Word文档</h3>
|
||||
<p class="wrapper subtitle">
|
||||
极简Python自动化办公系列
|
||||
</p>
|
||||
<div class="wrapper time">2019-01-02</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-oa-01/" class="wrapper post-i-link" title="Python写入Excel表格">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/oa1.jpg" alt="Python写入Excel表格">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python写入Excel表格">Python写入Excel表格</h3>
|
||||
<p class="wrapper subtitle">
|
||||
极简Python自动化办公系列
|
||||
</p>
|
||||
<div class="wrapper time">2019-01-01</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="tips-top-wrapper">
|
||||
<span class="tip-top-container" onclick="scrollToWindowTop()">
|
||||
<span class="l-bar"></span>
|
||||
<span class="r-bar"></span>
|
||||
</span>
|
||||
</div>
|
||||
<footer class="wrapper footer-wrapper">
|
||||
<div class="container"><span class="copyright">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
270
archives/index.html
Normal file
@@ -0,0 +1,270 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<head><meta name="generator" content="Hexo 3.9.0">
|
||||
<!-- Title -->
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="applicable-device" content="pc,mobile">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
||||
<meta name="author" content="flypython">
|
||||
<meta name="designer" content="flypython">
|
||||
<meta name="keywords" content="FlyPython - 专业的Python学习社区,flypython, 飞蟒,飞蟒Python,Python入门,Python自动化,Python日报">
|
||||
<meta property="og:title" content="FlyPython - 专业的Python学习社区">
|
||||
<meta property="og:site_name" content="http://www.flypython.com">
|
||||
|
||||
<meta property="og:description" content="FlyPython是提供一站式Python编程学习的组织,我们致力于为用户提供高效,有趣的学习环境,打造专注于Python的中文学习社区">
|
||||
<meta name="description" content="FlyPython是提供一站式Python编程学习的组织,我们致力于为用户提供高效,有趣的学习环境,打造专注于Python的中文学习社区">
|
||||
|
||||
<meta name="rating" content="general">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="format-detection" content="telephone=yes">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="robots" content="index, follow">
|
||||
<link rel="icon" href="/images/favicon.ico">
|
||||
<title>FlyPython - 专业的Python学习社区</title>
|
||||
<link rel="stylesheet" href="/css/f25.css">
|
||||
<link rel="stylesheet" href="/css/highlight.css">
|
||||
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-147288599-1');
|
||||
</script>
|
||||
|
||||
</head>
|
||||
</head>
|
||||
<body>
|
||||
<header class="wrapper header-wrapper">
|
||||
<div class="container header-nav-wrapper">
|
||||
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
|
||||
<nav class="nav-wrapper">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
<span class="btn-menu" id="J_header_menu">
|
||||
<div class="inner">
|
||||
<span class="line line-01"></span>
|
||||
<span class="line line-02"></span>
|
||||
<span class="line line-03"></span>
|
||||
</div>
|
||||
</span>
|
||||
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
|
||||
<nav class="wrapper mb-nav-container">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<section class="body-wrapper">
|
||||
<section class="banner-wrapper">
|
||||
<div class="container banner-container"></div>
|
||||
</section>
|
||||
<section class="wrapper menu-wrapper">
|
||||
<nav class="container">
|
||||
<a href="/" class="active">全部文章</a><a href="/fly/Python入门/" class="" title="Python入门">Python入门</a><a href="/fly/Python新特性/" class="" title="Python新特性">Python新特性</a><a href="/fly/自然语言处理/" class="" title="自然语言处理">自然语言处理</a><a href="/fly/自动化办公/" class="" title="自动化办公">自动化办公</a>
|
||||
</nav>
|
||||
</section>
|
||||
|
||||
<div class="wrapper index-wrapper">
|
||||
<ul class="container list-container">
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-new-02/" class="wrapper post-i-link" title="Python 3.8新特性——仅限位置形参">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/new-02.png" alt="Python 3.8新特性——仅限位置形参">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python 3.8新特性——仅限位置形参">Python 3.8新特性——仅限位置形参</h3>
|
||||
<p class="wrapper subtitle">
|
||||
介绍Python语言新的特性
|
||||
</p>
|
||||
<div class="wrapper time">2019-04-02</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-new-01/" class="wrapper post-i-link" title="Python 3.8新特性——赋值表达式">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/new-01.png" alt="Python 3.8新特性——赋值表达式">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python 3.8新特性——赋值表达式">Python 3.8新特性——赋值表达式</h3>
|
||||
<p class="wrapper subtitle">
|
||||
介绍Python语言新的特性
|
||||
</p>
|
||||
<div class="wrapper time">2019-04-01</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-nlp-01/" class="wrapper post-i-link" title="使用 Python 生成《红楼梦》词云">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/nlp1.png" alt="使用 Python 生成《红楼梦》词云">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="使用 Python 生成《红楼梦》词云">使用 Python 生成《红楼梦》词云</h3>
|
||||
<p class="wrapper subtitle">
|
||||
Python自然语言处理教程
|
||||
</p>
|
||||
<div class="wrapper time">2019-03-01</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-tutorial-03/" class="wrapper post-i-link" title="Python正则15分钟入门">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/tutorial3.png" alt="Python正则15分钟入门">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python正则15分钟入门">Python正则15分钟入门</h3>
|
||||
<p class="wrapper subtitle">
|
||||
Python入门教程
|
||||
</p>
|
||||
<div class="wrapper time">2019-02-03</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-tutorial-02/" class="wrapper post-i-link" title="潘石屹:我们为什么要学习Python语言?">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/tutorial2.png" alt="潘石屹:我们为什么要学习Python语言?">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="潘石屹:我们为什么要学习Python语言?">潘石屹:我们为什么要学习Python语言?</h3>
|
||||
<p class="wrapper subtitle">
|
||||
Python入门教程
|
||||
</p>
|
||||
<div class="wrapper time">2019-02-02</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-tutorial-01/" class="wrapper post-i-link" title="你是如何自学Python的?">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/tutorial1.png" alt="你是如何自学Python的?">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="你是如何自学Python的?">你是如何自学Python的?</h3>
|
||||
<p class="wrapper subtitle">
|
||||
Python入门教程
|
||||
</p>
|
||||
<div class="wrapper time">2019-02-01</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-oa-05/" class="wrapper post-i-link" title="Python读取PDF图片">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/oa4.jpg" alt="Python读取PDF图片">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python读取PDF图片">Python读取PDF图片</h3>
|
||||
<p class="wrapper subtitle">
|
||||
极简Python自动化办公系列
|
||||
</p>
|
||||
<div class="wrapper time">2019-01-05</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-oa-04/" class="wrapper post-i-link" title="Python读取PDF文字和表格">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/oa4.jpg" alt="Python读取PDF文字和表格">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python读取PDF文字和表格">Python读取PDF文字和表格</h3>
|
||||
<p class="wrapper subtitle">
|
||||
极简Python自动化办公系列
|
||||
</p>
|
||||
<div class="wrapper time">2019-01-04</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-oa-03/" class="wrapper post-i-link" title="Python批量转换任意文档格式">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/oa3.jpg" alt="Python批量转换任意文档格式">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python批量转换任意文档格式">Python批量转换任意文档格式</h3>
|
||||
<p class="wrapper subtitle">
|
||||
极简Python自动化办公系列
|
||||
</p>
|
||||
<div class="wrapper time">2019-01-03</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-oa-02/" class="wrapper post-i-link" title="Python写入Word文档">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/oa2.jpg" alt="Python写入Word文档">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python写入Word文档">Python写入Word文档</h3>
|
||||
<p class="wrapper subtitle">
|
||||
极简Python自动化办公系列
|
||||
</p>
|
||||
<div class="wrapper time">2019-01-02</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-oa-01/" class="wrapper post-i-link" title="Python写入Excel表格">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/oa1.jpg" alt="Python写入Excel表格">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python写入Excel表格">Python写入Excel表格</h3>
|
||||
<p class="wrapper subtitle">
|
||||
极简Python自动化办公系列
|
||||
</p>
|
||||
<div class="wrapper time">2019-01-01</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/about/" class="wrapper post-i-link" title="关于我们">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/flypython.png" alt="关于我们">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="关于我们">关于我们</h3>
|
||||
<p class="wrapper subtitle">
|
||||
关于飞蟒Python
|
||||
</p>
|
||||
<div class="wrapper time">2018-01-01</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="tips-top-wrapper">
|
||||
<span class="tip-top-container" onclick="scrollToWindowTop()">
|
||||
<span class="l-bar"></span>
|
||||
<span class="r-bar"></span>
|
||||
</span>
|
||||
</div>
|
||||
<footer class="wrapper footer-wrapper">
|
||||
<div class="container"><span class="copyright">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
141
article/about/index.html
Normal file
@@ -0,0 +1,141 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<head><meta name="generator" content="Hexo 3.9.0">
|
||||
<!-- Title -->
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="applicable-device" content="pc,mobile">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
||||
<meta name="author" content="flypython">
|
||||
<meta name="designer" content="flypython">
|
||||
<meta name="keywords" content="关于我们,FlyPython - 专业的Python学习社区,flypython, 飞蟒,飞蟒Python,Python入门,Python自动化,Python日报">
|
||||
<meta property="og:title" content="关于我们 | FlyPython - 专业的Python学习社区">
|
||||
<meta property="og:site_name" content="http://www.flypython.com">
|
||||
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:url" content="http://www.flypython.com/article/about/">
|
||||
<meta property="og:image" content="http://www.flypython.com/images/flypython.png">
|
||||
<meta property="og:description" content="关于我们--关于飞蟒Python">
|
||||
<meta name="description" content="关于我们--关于飞蟒Python">
|
||||
|
||||
<meta name="rating" content="general">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="format-detection" content="telephone=yes">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="robots" content="index, follow">
|
||||
<link rel="icon" href="/images/favicon.ico">
|
||||
<title>关于我们 | FlyPython - 专业的Python学习社区</title>
|
||||
<link rel="stylesheet" href="/css/f25.css">
|
||||
<link rel="stylesheet" href="/css/highlight.css">
|
||||
|
||||
<link rel="stylesheet" href="/css/gitalk.css">
|
||||
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-147288599-1');
|
||||
</script>
|
||||
|
||||
</head>
|
||||
</head>
|
||||
<body>
|
||||
<header class="wrapper header-wrapper">
|
||||
<div class="container header-nav-wrapper">
|
||||
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
|
||||
<nav class="nav-wrapper">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
<span class="btn-menu" id="J_header_menu">
|
||||
<div class="inner">
|
||||
<span class="line line-01"></span>
|
||||
<span class="line line-02"></span>
|
||||
<span class="line line-03"></span>
|
||||
</div>
|
||||
</span>
|
||||
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
|
||||
<nav class="wrapper mb-nav-container">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<section class="body-wrapper">
|
||||
<section class="wrapper post-banner">
|
||||
<div class="container post-banner-container">
|
||||
<h2 class="wrapper title">关于我们</h2>
|
||||
<div class="wrapper tips">
|
||||
<span>Author:</span><span>flypython</span> | <span>Date: </span><span>2018-01-01</span> | <span>Category:</span><span><a href="/fly/Python入门/" title="Python入门">Python入门</a></span>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="wrapper main-wrapper">
|
||||
<article class="sub-container post-content">
|
||||
<h2 id="关于我们"><a href="#关于我们" class="headerlink" title="关于我们"></a>关于我们</h2><p><a href="http://flypython.com" target="_blank" rel="noopener">http://flypython.com</a></p>
|
||||
<h4 id="关于FlyPython"><a href="#关于FlyPython" class="headerlink" title="关于FlyPython"></a>关于FlyPython</h4><p>FlyPython是提供一站式Python编程学习的组织,我们致力于为用户提供高效,有趣的学习环境,打造专注于Python的中文学习社区。</p>
|
||||
<h4 id="联系我们"><a href="#联系我们" class="headerlink" title="联系我们"></a>联系我们</h4><p>客服&合作: 微信号 flypython</p>
|
||||
<h4 id="公众号二维码"><a href="#公众号二维码" class="headerlink" title="公众号二维码"></a>公众号二维码</h4><p>FlyPython<br><img src="https://tva1.sinaimg.cn/large/006tNbRwly1gb1q8emoktj309k09k749.jpg" alt></p>
|
||||
<p>FlyPython训练营<br><img src="https://tva1.sinaimg.cn/large/006tNbRwly1gai7aeyheij3076076dgb.jpg" alt></p>
|
||||
|
||||
</article>
|
||||
<div class="sub-container gitalk-wrapper" id="gitalk-container"></div>
|
||||
</section>
|
||||
|
||||
<div class="tips-top-wrapper">
|
||||
<span class="tip-top-container" onclick="scrollToWindowTop()">
|
||||
<span class="l-bar"></span>
|
||||
<span class="r-bar"></span>
|
||||
</span>
|
||||
</div>
|
||||
<footer class="wrapper footer-wrapper">
|
||||
<div class="container"><span class="copyright">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
<script src="/js/gitalk.min.js"></script>
|
||||
|
||||
<script>
|
||||
var gitalkAdmin = 'xxg1413'.split(',');
|
||||
var gitalk = new Gitalk({
|
||||
clientID: 'd0e566bfc45c0b852c6c',
|
||||
clientSecret: '6b69b3a841c85a6223e5a904c47f5e2d84322980',
|
||||
repo: 'gitalk',
|
||||
owner: 'flypythoncom',
|
||||
admin: gitalkAdmin,
|
||||
id: location.pathname.length > 50 ? location.pathname.substr(0,50) : location.pathname, // Ensure uniqueness and length less than 50
|
||||
distractionFreeMode: false // Facebook-like distraction free mode
|
||||
});
|
||||
gitalk.render('gitalk-container');
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
188
article/python-new-01/index.html
Normal file
@@ -0,0 +1,188 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<head><meta name="generator" content="Hexo 3.9.0">
|
||||
<!-- Title -->
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="applicable-device" content="pc,mobile">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
||||
<meta name="author" content="flypython">
|
||||
<meta name="designer" content="flypython">
|
||||
<meta name="keywords" content="Python 3.8新特性——赋值表达式,FlyPython - 专业的Python学习社区,flypython, 飞蟒,飞蟒Python,Python入门,Python自动化,Python日报">
|
||||
<meta property="og:title" content="Python 3.8新特性——赋值表达式 | FlyPython - 专业的Python学习社区">
|
||||
<meta property="og:site_name" content="http://www.flypython.com">
|
||||
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:url" content="http://www.flypython.com/article/python-new-01/">
|
||||
<meta property="og:image" content="http://www.flypython.com/images/new-01.png">
|
||||
<meta property="og:description" content="Python 3.8新特性——赋值表达式--介绍Python语言新的特性">
|
||||
<meta name="description" content="Python 3.8新特性——赋值表达式--介绍Python语言新的特性">
|
||||
|
||||
<meta name="rating" content="general">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="format-detection" content="telephone=yes">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="robots" content="index, follow">
|
||||
<link rel="icon" href="/images/favicon.ico">
|
||||
<title>Python 3.8新特性——赋值表达式 | FlyPython - 专业的Python学习社区</title>
|
||||
<link rel="stylesheet" href="/css/f25.css">
|
||||
<link rel="stylesheet" href="/css/highlight.css">
|
||||
|
||||
<link rel="stylesheet" href="/css/gitalk.css">
|
||||
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-147288599-1');
|
||||
</script>
|
||||
|
||||
</head>
|
||||
</head>
|
||||
<body>
|
||||
<header class="wrapper header-wrapper">
|
||||
<div class="container header-nav-wrapper">
|
||||
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
|
||||
<nav class="nav-wrapper">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
<span class="btn-menu" id="J_header_menu">
|
||||
<div class="inner">
|
||||
<span class="line line-01"></span>
|
||||
<span class="line line-02"></span>
|
||||
<span class="line line-03"></span>
|
||||
</div>
|
||||
</span>
|
||||
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
|
||||
<nav class="wrapper mb-nav-container">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<section class="body-wrapper">
|
||||
<section class="wrapper post-banner">
|
||||
<div class="container post-banner-container">
|
||||
<h2 class="wrapper title">Python 3.8新特性——赋值表达式</h2>
|
||||
<div class="wrapper tips">
|
||||
<span>Author:</span><span>flypython</span> | <span>Date: </span><span>2019-04-01</span> | <span>Category:</span><span><a href="/fly/Python新特性/" title="Python新特性">Python新特性</a></span>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="wrapper main-wrapper">
|
||||
<article class="sub-container post-content">
|
||||
<p>上周,Python3.8版本发布,到底带来了哪些新的特性呢?我们应该在哪些场景中使用这些特性呢?本周,我们通过几篇文章来告诉你答案。</p>
|
||||
<p><img src="https://tva1.sinaimg.cn/large/006tNbRwly1gai72bypmej30u00u9wl1.jpg" alt></p>
|
||||
<h4 id="安装"><a href="#安装" class="headerlink" title="安装"></a>安装</h4><p>首先,我们并不推荐安装最新版本到常用的开发环境中,你可以使用虚拟环境或者docker来尝鲜。</p>
|
||||
<p>官方安装包</p>
|
||||
<p>网址:<code>https://www.python.org/downloads/release/python-380/</code></p>
|
||||
<p>也可以使用docker</p>
|
||||
<p>拉取镜像命令<br><code>docker pull python:3.8</code></p>
|
||||
<h2 id="赋值表达式"><a href="#赋值表达式" class="headerlink" title="赋值表达式"></a>赋值表达式</h2><p><img src="https://tva1.sinaimg.cn/large/006tNbRwly1gai72nu5otj30jg0atdfq.jpg" alt></p>
|
||||
<p>赋值表达式被叫做海象运算符,因为它的形状像海象。如果熟悉go语言的话,会对这个表达式会熟悉。</p>
|
||||
<p>赋值表达式的语法是 </p>
|
||||
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">name := expression</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>和赋值语句 <code>=</code> 作用差不多,非必不可少,但可以简化代码。</p>
|
||||
<h4 id="官方示例"><a href="#官方示例" class="headerlink" title="官方示例"></a>官方示例</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">>>> a = False</span><br><span class="line">>>> print(a)</span><br><span class="line">False</span><br><span class="line">>>> print(a := True)</span><br><span class="line">True</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>此例子赋值之后,后续还需要使用变量。赋值表达可用于简化代码,提高可读性。</p>
|
||||
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line">>>> inputs = list()</span><br><span class="line">>>> while True:</span><br><span class="line">... current = input("your input:")</span><br><span class="line">... if current == "quit":</span><br><span class="line">... break</span><br><span class="line">... inputs.append(current)</span><br><span class="line">...</span><br><span class="line">your input:a</span><br><span class="line">your input:b</span><br><span class="line">your input:test</span><br><span class="line">your input:quit</span><br><span class="line">>>> inputs</span><br><span class="line">['a', 'b', 'test']</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>使用赋值操作符时:</p>
|
||||
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">>>> inputs = list()</span><br><span class="line">>>> while (current := input("your input:")) != "quit":</span><br><span class="line">... inputs.append(current)</span><br><span class="line">...</span><br><span class="line">your input:a</span><br><span class="line">your input:b</span><br><span class="line">your input:test</span><br><span class="line">your input:quit</span><br><span class="line">>>> inputs</span><br><span class="line">['a', 'b', 'test']</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>此例子,省略了一条语句,可读性上升。</p>
|
||||
<p>再来一个例子</p>
|
||||
<p>最初版本</p>
|
||||
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">a = [1,2,3,4]</span><br><span class="line">if len(a) > 3: #计算 len(a) 一次 </span><br><span class="line"> print(f"a is too long ({len(a)} elements,expected < 3)") # 计算 len(a) 第二次</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>我们改写为:</p>
|
||||
<p>改进版本</p>
|
||||
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">a = [1,2,3,4]</span><br><span class="line">n = len(a) # 计算一次len(a)</span><br><span class="line">if n > 3: # 多了变量n</span><br><span class="line"> print(f"a is too long ({n} elements,expected < 3)") #</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>新特性重写:<br>重写版本</p>
|
||||
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">a = [1,2,3,4]</span><br><span class="line">if (n:=len(a)) > 3: # 计算一次len(a),多了变量n,把两行改为一行</span><br><span class="line"> print(f"a is too long ({n} elements,expected < 3)") #</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>从上面可以看到,重写版本和改进版本的不同在于:</p>
|
||||
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">n = len(a) </span><br><span class="line">if n > 3:</span><br><span class="line"> pass</span><br></pre></td></tr></table></figure>
|
||||
|
||||
|
||||
<p>与</p>
|
||||
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">if (n:=len(a)) > 3:</span><br><span class="line"> pass</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>这两个版本的区别在于,<code>:=</code>和<code>=</code>是补充关系并不是替换关系,下面的例子可以看到官方的意图。</p>
|
||||
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">x = 5</span><br><span class="line">print(f"x = {x}")</span><br><span class="line"></span><br><span class="line">#能用=解决的就用=解决</span><br><span class="line">y := 5 # SyntaxError: invalid syntax</span><br><span class="line">print(f"y = {y}")</span><br><span class="line"></span><br><span class="line">(z := 5)</span><br><span class="line">print(f"z = {z}")</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>由上面可以看出<code>:=</code>和<code>=</code>是互补关系,在应该使用<code>:=</code>的时候才可以使用<code>:=</code>。</p>
|
||||
<p>Python语言的一致性,不管是专家还是新手,在同一个问题上都应该有一致的写法,然后这就形成了最pythonic的写法。</p>
|
||||
<p>最后带来,新特性带来的最佳实践</p>
|
||||
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"># 简化 os.fork </span><br><span class="line">if pid := os.fork():</span><br><span class="line"> # Parent code</span><br><span class="line">else:</span><br><span class="line"> # Child code</span><br><span class="line"></span><br><span class="line"># 直接到把 socket 对象的 read buffer 读完为止</span><br><span class="line">while data := sock.recv(8192):</span><br><span class="line"> print("Received data:", data)</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<h4 id="参考"><a href="#参考" class="headerlink" title="参考"></a>参考</h4><ul>
|
||||
<li><a href="https://docs.python.org/zh-cn/3.8/whatsnew/3.8.html" target="_blank" rel="noopener">https://docs.python.org/zh-cn/3.8/whatsnew/3.8.html</a></li>
|
||||
<li><a href="https://www.python.org/dev/peps/pep-0572" target="_blank" rel="noopener">https://www.python.org/dev/peps/pep-0572</a></li>
|
||||
</ul>
|
||||
|
||||
</article>
|
||||
<div class="sub-container gitalk-wrapper" id="gitalk-container"></div>
|
||||
</section>
|
||||
|
||||
<div class="tips-top-wrapper">
|
||||
<span class="tip-top-container" onclick="scrollToWindowTop()">
|
||||
<span class="l-bar"></span>
|
||||
<span class="r-bar"></span>
|
||||
</span>
|
||||
</div>
|
||||
<footer class="wrapper footer-wrapper">
|
||||
<div class="container"><span class="copyright">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
<script src="/js/gitalk.min.js"></script>
|
||||
|
||||
<script>
|
||||
var gitalkAdmin = 'xxg1413'.split(',');
|
||||
var gitalk = new Gitalk({
|
||||
clientID: 'd0e566bfc45c0b852c6c',
|
||||
clientSecret: '6b69b3a841c85a6223e5a904c47f5e2d84322980',
|
||||
repo: 'gitalk',
|
||||
owner: 'flypythoncom',
|
||||
admin: gitalkAdmin,
|
||||
id: location.pathname.length > 50 ? location.pathname.substr(0,50) : location.pathname, // Ensure uniqueness and length less than 50
|
||||
distractionFreeMode: false // Facebook-like distraction free mode
|
||||
});
|
||||
gitalk.render('gitalk-container');
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
165
article/python-new-02/index.html
Normal file
@@ -0,0 +1,165 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<head><meta name="generator" content="Hexo 3.9.0">
|
||||
<!-- Title -->
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="applicable-device" content="pc,mobile">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
||||
<meta name="author" content="flypython">
|
||||
<meta name="designer" content="flypython">
|
||||
<meta name="keywords" content="Python 3.8新特性——仅限位置形参,FlyPython - 专业的Python学习社区,flypython, 飞蟒,飞蟒Python,Python入门,Python自动化,Python日报">
|
||||
<meta property="og:title" content="Python 3.8新特性——仅限位置形参 | FlyPython - 专业的Python学习社区">
|
||||
<meta property="og:site_name" content="http://www.flypython.com">
|
||||
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:url" content="http://www.flypython.com/article/python-new-02/">
|
||||
<meta property="og:image" content="http://www.flypython.com/images/new-02.png">
|
||||
<meta property="og:description" content="Python 3.8新特性——仅限位置形参--介绍Python语言新的特性">
|
||||
<meta name="description" content="Python 3.8新特性——仅限位置形参--介绍Python语言新的特性">
|
||||
|
||||
<meta name="rating" content="general">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="format-detection" content="telephone=yes">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="robots" content="index, follow">
|
||||
<link rel="icon" href="/images/favicon.ico">
|
||||
<title>Python 3.8新特性——仅限位置形参 | FlyPython - 专业的Python学习社区</title>
|
||||
<link rel="stylesheet" href="/css/f25.css">
|
||||
<link rel="stylesheet" href="/css/highlight.css">
|
||||
|
||||
<link rel="stylesheet" href="/css/gitalk.css">
|
||||
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-147288599-1');
|
||||
</script>
|
||||
|
||||
</head>
|
||||
</head>
|
||||
<body>
|
||||
<header class="wrapper header-wrapper">
|
||||
<div class="container header-nav-wrapper">
|
||||
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
|
||||
<nav class="nav-wrapper">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
<span class="btn-menu" id="J_header_menu">
|
||||
<div class="inner">
|
||||
<span class="line line-01"></span>
|
||||
<span class="line line-02"></span>
|
||||
<span class="line line-03"></span>
|
||||
</div>
|
||||
</span>
|
||||
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
|
||||
<nav class="wrapper mb-nav-container">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<section class="body-wrapper">
|
||||
<section class="wrapper post-banner">
|
||||
<div class="container post-banner-container">
|
||||
<h2 class="wrapper title">Python 3.8新特性——仅限位置形参</h2>
|
||||
<div class="wrapper tips">
|
||||
<span>Author:</span><span>flypython</span> | <span>Date: </span><span>2019-04-02</span> | <span>Category:</span><span><a href="/fly/Python新特性/" title="Python新特性">Python新特性</a></span>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="wrapper main-wrapper">
|
||||
<article class="sub-container post-content">
|
||||
<h2 id="仅限位置形参"><a href="#仅限位置形参" class="headerlink" title="仅限位置形参"></a>仅限位置形参</h2><p>Positional-only parameters官方翻译为仅限位置形参,也可以理解为只接受位置参数。意思就是,它只是一个位置参数,不接受关键字传参。</p>
|
||||
<p>语法: </p>
|
||||
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">def funx(a,b,/): # / 指明,前面的a,b参数是仅限位置形参</span><br><span class="line"> pass</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>函数形参语法<code>/</code> 用来指明某些函数形参必须使用仅限位置而非关键字参数</p>
|
||||
<p>其实,Python内置的很多C函数接口都是这种形式,比如</p>
|
||||
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">>>> import builtins</span><br><span class="line">>>> help(__builtins__.divmod)</span><br><span class="line">Help on built-in function divmod in module builtins:</span><br><span class="line"></span><br><span class="line">divmod(x, y, /)</span><br><span class="line"> Return the tuple (x//y, x%y). Invariant: div*y + mod == x.</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>很多函数后面都有 <code>/</code>来表明,左边的这些参数只接受位置参数。</p>
|
||||
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">>>> divmod(1,2)</span><br><span class="line">(0, 1)</span><br><span class="line">>>> divmod(x=1,y=2) </span><br><span class="line">Traceback (most recent call last):</span><br><span class="line"> File "<stdin>", line 1, in <module></span><br><span class="line">TypeError: divmod() takes no keyword arguments</span><br><span class="line">>>></span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>指定关键字的参数会报语法错误,它的用途就是强制使用者用位置参数来传参。</p>
|
||||
<h4 id="官方例子"><a href="#官方例子" class="headerlink" title="官方例子"></a>官方例子</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">>>> def f(a,b,/,**kwargs):</span><br><span class="line">... print(a,b,kwargs)</span><br><span class="line">...</span><br><span class="line">>>> f(10,20,a=1,b=2,c=3)</span><br><span class="line">10 20 {'a': 1, 'b': 2, 'c': 3}</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>由于在 <code>/</code> 左侧的形参不会被公开为可用关键字</p>
|
||||
<p>这里的a,b 为仅限位置参数,最后a,b会被赋值了两次。<br>位置参数赋值一次,关键字参数赋值一次,关键字参数以kwargs字典的形式存在,需要通过 <code>kwargs['a'],kwargs['b']</code>访问。</p>
|
||||
<p>现在我们来看一下,添加了仅限位置形参之后的函数参数形式</p>
|
||||
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">def name(positional_only_parameters, /, positional_or_keyword_parameters,</span><br><span class="line"> *, keyword_only_parameters):</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>包括了仅限位置形参, <code>/</code>, 位置形参或者关键字参数 ,<code>*</code>,仅限关键字参数。</p>
|
||||
<p><img src="https://tva1.sinaimg.cn/large/006tNbRwly1gai73g9r3ej30so09mq3k.jpg" alt></p>
|
||||
<p>最后,我们可以定义以下形式的函数</p>
|
||||
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">def name(p1, p2, /, p_or_kw, *, kw):</span><br><span class="line">def name(p1, p2=None, /, p_or_kw=None, *, kw):</span><br><span class="line">def name(p1, p2=None, /, *, kw):</span><br><span class="line">def name(p1, p2=None, /):</span><br><span class="line">def name(p1, p2, /, p_or_kw):</span><br><span class="line">def name(p1, p2, /):</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<h4 id="参考"><a href="#参考" class="headerlink" title="参考"></a>参考</h4><ul>
|
||||
<li><a href="https://docs.python.org/zh-cn/3.8/whatsnew/3.8.html" target="_blank" rel="noopener">https://docs.python.org/zh-cn/3.8/whatsnew/3.8.html</a></li>
|
||||
<li><a href="https://docs.python.org/zh-cn/3/howto/clinic.html" target="_blank" rel="noopener">https://docs.python.org/zh-cn/3/howto/clinic.html</a></li>
|
||||
<li><a href="https://www.python.org/dev/peps/pep-0570" target="_blank" rel="noopener">https://www.python.org/dev/peps/pep-0570</a></li>
|
||||
</ul>
|
||||
|
||||
</article>
|
||||
<div class="sub-container gitalk-wrapper" id="gitalk-container"></div>
|
||||
</section>
|
||||
|
||||
<div class="tips-top-wrapper">
|
||||
<span class="tip-top-container" onclick="scrollToWindowTop()">
|
||||
<span class="l-bar"></span>
|
||||
<span class="r-bar"></span>
|
||||
</span>
|
||||
</div>
|
||||
<footer class="wrapper footer-wrapper">
|
||||
<div class="container"><span class="copyright">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
<script src="/js/gitalk.min.js"></script>
|
||||
|
||||
<script>
|
||||
var gitalkAdmin = 'xxg1413'.split(',');
|
||||
var gitalk = new Gitalk({
|
||||
clientID: 'd0e566bfc45c0b852c6c',
|
||||
clientSecret: '6b69b3a841c85a6223e5a904c47f5e2d84322980',
|
||||
repo: 'gitalk',
|
||||
owner: 'flypythoncom',
|
||||
admin: gitalkAdmin,
|
||||
id: location.pathname.length > 50 ? location.pathname.substr(0,50) : location.pathname, // Ensure uniqueness and length less than 50
|
||||
distractionFreeMode: false // Facebook-like distraction free mode
|
||||
});
|
||||
gitalk.render('gitalk-container');
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
157
article/python-nlp-01/index.html
Normal file
@@ -0,0 +1,157 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<head><meta name="generator" content="Hexo 3.9.0">
|
||||
<!-- Title -->
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="applicable-device" content="pc,mobile">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
||||
<meta name="author" content="flypython">
|
||||
<meta name="designer" content="flypython">
|
||||
<meta name="keywords" content="使用 Python 生成《红楼梦》词云,FlyPython - 专业的Python学习社区,flypython, 飞蟒,飞蟒Python,Python入门,Python自动化,Python日报">
|
||||
<meta property="og:title" content="使用 Python 生成《红楼梦》词云 | FlyPython - 专业的Python学习社区">
|
||||
<meta property="og:site_name" content="http://www.flypython.com">
|
||||
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:url" content="http://www.flypython.com/article/python-nlp-01/">
|
||||
<meta property="og:image" content="http://www.flypython.com/images/nlp1.png">
|
||||
<meta property="og:description" content="使用 Python 生成《红楼梦》词云--Python自然语言处理教程">
|
||||
<meta name="description" content="使用 Python 生成《红楼梦》词云--Python自然语言处理教程">
|
||||
|
||||
<meta name="rating" content="general">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="format-detection" content="telephone=yes">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="robots" content="index, follow">
|
||||
<link rel="icon" href="/images/favicon.ico">
|
||||
<title>使用 Python 生成《红楼梦》词云 | FlyPython - 专业的Python学习社区</title>
|
||||
<link rel="stylesheet" href="/css/f25.css">
|
||||
<link rel="stylesheet" href="/css/highlight.css">
|
||||
|
||||
<link rel="stylesheet" href="/css/gitalk.css">
|
||||
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-147288599-1');
|
||||
</script>
|
||||
|
||||
</head>
|
||||
</head>
|
||||
<body>
|
||||
<header class="wrapper header-wrapper">
|
||||
<div class="container header-nav-wrapper">
|
||||
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
|
||||
<nav class="nav-wrapper">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
<span class="btn-menu" id="J_header_menu">
|
||||
<div class="inner">
|
||||
<span class="line line-01"></span>
|
||||
<span class="line line-02"></span>
|
||||
<span class="line line-03"></span>
|
||||
</div>
|
||||
</span>
|
||||
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
|
||||
<nav class="wrapper mb-nav-container">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<section class="body-wrapper">
|
||||
<section class="wrapper post-banner">
|
||||
<div class="container post-banner-container">
|
||||
<h2 class="wrapper title">使用 Python 生成《红楼梦》词云</h2>
|
||||
<div class="wrapper tips">
|
||||
<span>Author:</span><span>flypython</span> | <span>Date: </span><span>2019-03-01</span> | <span>Category:</span><span><a href="/fly/自然语言处理/" title="自然语言处理">自然语言处理</a></span>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="wrapper main-wrapper">
|
||||
<article class="sub-container post-content">
|
||||
<p>使用 Python 生成《红楼梦》词云</p>
|
||||
<p><img src="http://jcjview.github.io/img/1210058744_15500375990201n.jpg" alt></p>
|
||||
<p>本文介绍如何使用python绘制《红楼梦》的词云。</p>
|
||||
<blockquote>
|
||||
<p>“词云”就是对网络文本中出现频率较高的“关键词”予以视觉上的突出,形成“关键词云层”或“关键词渲染”,从而过滤掉大量的文本信息,使浏览网页者只要一眼扫过文本就可以领略文本的主旨。<br><a href="http://media.people.com.cn/GB/22100/61748/61749/4281906.html" target="_blank" rel="noopener">“词云”——网络内容发布新招式 .人民网</a></p>
|
||||
</blockquote>
|
||||
<h2 id="0-摘要"><a href="#0-摘要" class="headerlink" title="0.摘要"></a>0.摘要</h2><p><strong>本文建议在电脑上打开,边阅读边操作。</strong></p>
|
||||
<ol>
|
||||
<li>安装python词云工具wordcloud,画图软件matplotlib</li>
|
||||
<li>准备红楼梦文本</li>
|
||||
<li>编写python代码并运行</li>
|
||||
<li>展示词云结果</li>
|
||||
</ol>
|
||||
<h2 id="1-安装wordcloud"><a href="#1-安装wordcloud" class="headerlink" title="1.安装wordcloud"></a>1.安装wordcloud</h2><p>可以在cmd窗口输入<figure class="highlight plain"><figcaption><span>install wordcloud matplotlib```</span></figcaption><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br></pre></td><td class="code"><pre><span class="line"></span><br><span class="line"></span><br><span class="line"></span><br><span class="line"></span><br><span class="line">## 2.准备红楼梦文本</span><br><span class="line"></span><br><span class="line">文本可以用下面链接下载</span><br><span class="line"></span><br><span class="line"></span><br><span class="line">`https://github.com/flypythoncom/flypython/blob/master/wordcloud_hlm_seg.txt`</span><br><span class="line"></span><br><span class="line">或者可以自己写代码,对文本进行清洗,分词。</span><br><span class="line">这里需要安装jieba分词,`pip install jieba`</span><br><span class="line">``` python</span><br><span class="line">import jieba</span><br><span class="line">import re</span><br><span class="line"></span><br><span class="line">special_character_removal = re.compile(r'[,。、【 】“”:;()《》‘’{}?!⑦%>℃.^-——=&#@¥『』]', re.IGNORECASE)</span><br><span class="line"></span><br><span class="line">fw=open("hlm_seg.txt","w",encoding="utf-8")</span><br><span class="line"></span><br><span class="line">with open('hlm.txt',encoding="utf-8") as fp:</span><br><span class="line"> for line in fp:</span><br><span class="line"> l = special_character_removal.sub('', line.strip())</span><br><span class="line"> words=jieba.cut(l)</span><br><span class="line"> t=" ".join(words)</span><br><span class="line"> fw.write(t)</span><br><span class="line"> fw.write("\n")</span><br><span class="line"> </span><br><span class="line">fw.close()</span><br></pre></td></tr></table></figure></p>
|
||||
<h2 id="3-编写词云python代码并运行"><a href="#3-编写词云python代码并运行" class="headerlink" title="3. 编写词云python代码并运行"></a>3. 编写词云python代码并运行</h2><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">from</span> os <span class="keyword">import</span> path </span><br><span class="line"><span class="keyword">from</span> wordcloud <span class="keyword">import</span> WordCloud</span><br><span class="line"></span><br><span class="line">d = path.dirname(__file__) </span><br><span class="line"><span class="comment"># Read the whole text. </span></span><br><span class="line">text = open(path.join(d, <span class="string">'hlm_seg.txt'</span>),encoding=<span class="string">"utf-8"</span>).read() </span><br><span class="line"><span class="comment"># Generate a word cloud image </span></span><br><span class="line"><span class="comment"># font=path.join(d, "simkai.ttf") </span></span><br><span class="line">font=<span class="string">'C:/Windows/Fonts/simkai.ttf'</span> </span><br><span class="line">wordcloud = WordCloud(font_path=font,<span class="comment">#设置中文字体,不指定就会出现中文不显示 </span></span><br><span class="line"> width=<span class="number">1024</span>,<span class="comment">#宽 </span></span><br><span class="line"> height=<span class="number">840</span>,<span class="comment">#高 </span></span><br><span class="line"> background_color=<span class="string">'white'</span>,<span class="comment">#设置背景色 </span></span><br><span class="line"> <span class="comment"># max_words=100,#最大词汇数 </span></span><br><span class="line"> <span class="comment"># max_font_size=100#最大号字体 </span></span><br><span class="line"> ).generate(text) </span><br><span class="line"> </span><br><span class="line"><span class="comment"># Display the generated image: </span></span><br><span class="line"><span class="comment"># the matplotlib way: </span></span><br><span class="line"><span class="keyword">import</span> matplotlib.pyplot <span class="keyword">as</span> plt </span><br><span class="line"> </span><br><span class="line">plt.figure() </span><br><span class="line">plt.imshow(wordcloud) </span><br><span class="line">plt.axis(<span class="string">"off"</span>) </span><br><span class="line">plt.show()</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>结果:</p>
|
||||
<p><img src="http://jcjview.github.io/img/Figure_1.png" alt="词云运行结果"></p>
|
||||
<p>后台回复“词云”获得完整运行代码</p>
|
||||
<p><em>人生苦短,我用python早下班。如果觉得不错,对你工作中有帮助,请加我微信公众号flypython,我们一起探讨python相关问题</em></p>
|
||||
<p> <img src="https://flypython.com/images/wechat.png" alt="flypython微信公众号"></p>
|
||||
|
||||
</article>
|
||||
<div class="sub-container gitalk-wrapper" id="gitalk-container"></div>
|
||||
</section>
|
||||
|
||||
<div class="tips-top-wrapper">
|
||||
<span class="tip-top-container" onclick="scrollToWindowTop()">
|
||||
<span class="l-bar"></span>
|
||||
<span class="r-bar"></span>
|
||||
</span>
|
||||
</div>
|
||||
<footer class="wrapper footer-wrapper">
|
||||
<div class="container"><span class="copyright">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
<script src="/js/gitalk.min.js"></script>
|
||||
|
||||
<script>
|
||||
var gitalkAdmin = 'xxg1413'.split(',');
|
||||
var gitalk = new Gitalk({
|
||||
clientID: 'd0e566bfc45c0b852c6c',
|
||||
clientSecret: '6b69b3a841c85a6223e5a904c47f5e2d84322980',
|
||||
repo: 'gitalk',
|
||||
owner: 'flypythoncom',
|
||||
admin: gitalkAdmin,
|
||||
id: location.pathname.length > 50 ? location.pathname.substr(0,50) : location.pathname, // Ensure uniqueness and length less than 50
|
||||
distractionFreeMode: false // Facebook-like distraction free mode
|
||||
});
|
||||
gitalk.render('gitalk-container');
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
174
article/python-oa-01/index.html
Normal file
@@ -0,0 +1,174 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<head><meta name="generator" content="Hexo 3.9.0">
|
||||
<!-- Title -->
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="applicable-device" content="pc,mobile">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
||||
<meta name="author" content="flypython">
|
||||
<meta name="designer" content="flypython">
|
||||
<meta name="keywords" content="Python写入Excel表格,FlyPython - 专业的Python学习社区,flypython, 飞蟒,飞蟒Python,Python入门,Python自动化,Python日报">
|
||||
<meta property="og:title" content="Python写入Excel表格 | FlyPython - 专业的Python学习社区">
|
||||
<meta property="og:site_name" content="http://www.flypython.com">
|
||||
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:url" content="http://www.flypython.com/article/python-oa-01/">
|
||||
<meta property="og:image" content="http://www.flypython.com/images/oa1.jpg">
|
||||
<meta property="og:description" content="Python写入Excel表格--极简Python自动化办公系列">
|
||||
<meta name="description" content="Python写入Excel表格--极简Python自动化办公系列">
|
||||
|
||||
<meta name="rating" content="general">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="format-detection" content="telephone=yes">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="robots" content="index, follow">
|
||||
<link rel="icon" href="/images/favicon.ico">
|
||||
<title>Python写入Excel表格 | FlyPython - 专业的Python学习社区</title>
|
||||
<link rel="stylesheet" href="/css/f25.css">
|
||||
<link rel="stylesheet" href="/css/highlight.css">
|
||||
|
||||
<link rel="stylesheet" href="/css/gitalk.css">
|
||||
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-147288599-1');
|
||||
</script>
|
||||
|
||||
</head>
|
||||
</head>
|
||||
<body>
|
||||
<header class="wrapper header-wrapper">
|
||||
<div class="container header-nav-wrapper">
|
||||
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
|
||||
<nav class="nav-wrapper">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
<span class="btn-menu" id="J_header_menu">
|
||||
<div class="inner">
|
||||
<span class="line line-01"></span>
|
||||
<span class="line line-02"></span>
|
||||
<span class="line line-03"></span>
|
||||
</div>
|
||||
</span>
|
||||
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
|
||||
<nav class="wrapper mb-nav-container">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<section class="body-wrapper">
|
||||
<section class="wrapper post-banner">
|
||||
<div class="container post-banner-container">
|
||||
<h2 class="wrapper title">Python写入Excel表格</h2>
|
||||
<div class="wrapper tips">
|
||||
<span>Author:</span><span>flypython</span> | <span>Date: </span><span>2019-01-01</span> | <span>Category:</span><span><a href="/fly/自动化办公/" title="自动化办公">自动化办公</a></span>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="wrapper main-wrapper">
|
||||
<article class="sub-container post-content">
|
||||
<h1 id="【极简Python-自动化办公】Python写入Excel表格"><a href="#【极简Python-自动化办公】Python写入Excel表格" class="headerlink" title="【极简Python 自动化办公】Python写入Excel表格"></a>【极简Python 自动化办公】Python写入Excel表格</h1><blockquote>
|
||||
<p>【极简Python 自动化办公】专栏是介绍如何利用python办公,减少工作负荷。篇幅精炼,内容易懂,无论是否有编程基础,都非常适合。</p>
|
||||
</blockquote>
|
||||
<p>在上次文章中,我们学习了【用python读取excel】,这次我们继续学习Python写excel吧!</p>
|
||||
<p><img src="http://jcjview.github.io/img/flypythonpython-excel-tutorial.jpg" alt></p>
|
||||
<h2 id="0-摘要"><a href="#0-摘要" class="headerlink" title="0.摘要"></a>0.摘要</h2><p><strong>本文大约需要15分钟,建议在电脑上打开,边阅读边操作。</strong></p>
|
||||
<ol>
|
||||
<li>安装Python读excel模块——xlwt</li>
|
||||
<li>准备写入表格内容</li>
|
||||
<li>编写python代码并运行</li>
|
||||
<li>使用for循环语句读取并写入excel表格</li>
|
||||
</ol>
|
||||
<h2 id="1-安装xlwt"><a href="#1-安装xlwt" class="headerlink" title="1.安装xlwt"></a>1.安装xlwt</h2><p>与上篇文章类似,需要在cmd窗口输入<figure class="highlight plain"><figcaption><span>install xlwt```。</span></figcaption><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br></pre></td><td class="code"><pre><span class="line"></span><br><span class="line"></span><br><span class="line">## 2.准备写入表格内容</span><br><span class="line"></span><br><span class="line">这步很简单,只要想好输入内容即可,这里设计了一个简单的表格内容作为写入内容(目前这个内容还不存在)。</span><br><span class="line"></span><br><span class="line">| 序号 | 学号 |年龄 |</span><br><span class="line">| --- | --- |--- |</span><br><span class="line">| 张三 | 20190901 |11|</span><br><span class="line">| 李四 |20190902|12 |</span><br><span class="line">| 小明 | 20190903 |13 |</span><br><span class="line"></span><br><span class="line">## 3.编写python代码并运行</span><br><span class="line"></span><br><span class="line">新建一个writeexcel.py文件,用记事本或其他文本编辑工具打开。</span><br><span class="line"></span><br><span class="line">本次写入excel的思路是,新建文件->指定行列->写入内容。</span><br><span class="line"></span><br><span class="line">在文本编辑工具中输入如下代码,保存并关闭。</span><br></pre></td></tr></table></figure></p>
|
||||
<p>import xlwt</p>
|
||||
<p>f = xlwt.Workbook()<br>sheet1 = f.add_sheet(‘sheet1’,cell_overwrite_ok=True)<br>column = [“姓名”,”学号”,”年龄”]<br>name = [“张三”,”李四”,”小明”]</p>
|
||||
<p>school_code = [20190901,20190902,20190903]</p>
|
||||
<p>age = [11,12,13]</p>
|
||||
<p>sheet1.write(0,0,column[0])#第1行第1列<br>sheet1.write(0,1,column[1])#第3行第3列<br>sheet1.write(0,2,column[2])#第2行第2列</p>
|
||||
<p>sheet1.write(1,0,name[0])#第2行第1列<br>sheet1.write(1,1,school_code[0])#第2行第1列<br>sheet1.write(1,2,age[0])#第3行第1列</p>
|
||||
<p>sheet1.write(2,0,name[1])<br>sheet1.write(2,1,school_code[1])<br>sheet1.write(2,2,age[1])</p>
|
||||
<p>sheet1.write(3,0,name[2])<br>sheet1.write(3,1,school_code[2])<br>sheet1.write(3,2,age[2])</p>
|
||||
<p>f.save(‘test1.xls’)</p>
|
||||
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br></pre></td><td class="code"><pre><span class="line"></span><br><span class="line">还是一样,注意每句的开头不可以有空格,因为python用*缩进*来表示编程的层次,缩进不同就会报错了。</span><br><span class="line"></span><br><span class="line"></span><br><span class="line">在保存writeexcel.py的位置上打开cmd,运行 python writeexcel.py</span><br><span class="line">可以看到结果:</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"></span><br><span class="line"></span><br><span class="line">## 4.使用for循环语句读取并写入excel表格</span><br><span class="line"></span><br><span class="line">非常好!您已经学会了如何读取和写入excel表格。</span><br><span class="line"></span><br><span class="line">但是,我们只能一个一个单元格读取和写入数据,这比手工操作excel表格快不了多少。</span><br><span class="line"></span><br><span class="line">接下来,我们需要学习使用for循环,来批量读取一个excel表格,并循环写入另一个excel表格中。</span><br><span class="line"></span><br><span class="line">不要删除test1.xls,在test1.xls文件的位置,新建一个rwexcel.py文件,将下面代码输入到文件中:</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>import xlrd<br>import xlwt</p>
|
||||
<p>wb = xlrd.open_workbook(“test1.xls”)#打开文件<br>sheet1 = wb.sheet_by_index(0)#获取第一个表格</p>
|
||||
<p>column = []#列名</p>
|
||||
<p>data=[]</p>
|
||||
<p>#获取列名<br>column.append(sheet1.cell(0,0).value)#姓名<br>column.append(sheet1.cell(0,1).value)#学号<br>column.append(sheet1.cell(0,2).value)#年龄</p>
|
||||
<p>for i in range(1,sheet1.nrows):#sheet1.nrows 行数<br> coldata=[]<br> coldata.append(sheet1.cell(i, 0).value)#姓名<br> coldata.append(int(sheet1.cell_value(i, 1)))#学号<br> coldata.append(sheet1.cell(i, 2).value)#年龄<br> data.append(coldata)</p>
|
||||
<p>f = xlwt.Workbook()<br>sheetw = f.add_sheet(‘sheet1’,cell_overwrite_ok=True)</p>
|
||||
<p>sheetw.write(0,0,column[0])#姓名<br>sheetw.write(0,2,column[2])#学号<br>sheetw.write(0,1,column[1])#年龄</p>
|
||||
<p>for i in range(len(data)):<br> d=data[i]<br> sheetw.write(i+1, 0, d[0]) # 第2行第1列<br> sheetw.write(i+1, 1, d[1]) # 第2行第1列<br> sheetw.write(i+1, 2, d[2]) # 第3行第1列</p>
|
||||
<p>f.save(‘test2.xls’)</p>
|
||||
<p>```</p>
|
||||
<p>运行后,会生成一个test2.xls,与test1.xls一模一样。</p>
|
||||
<p><em>人生苦短,我用python早下班。如果觉得不错,对你工作中有帮助,请加我微信公众号flypython,我们一起探讨python相关问题</em></p>
|
||||
<p> <img src="https://flypython.com/images/wechat.png" alt="flypython微信公众号"></p>
|
||||
|
||||
</article>
|
||||
<div class="sub-container gitalk-wrapper" id="gitalk-container"></div>
|
||||
</section>
|
||||
|
||||
<div class="tips-top-wrapper">
|
||||
<span class="tip-top-container" onclick="scrollToWindowTop()">
|
||||
<span class="l-bar"></span>
|
||||
<span class="r-bar"></span>
|
||||
</span>
|
||||
</div>
|
||||
<footer class="wrapper footer-wrapper">
|
||||
<div class="container"><span class="copyright">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
<script src="/js/gitalk.min.js"></script>
|
||||
|
||||
<script>
|
||||
var gitalkAdmin = 'xxg1413'.split(',');
|
||||
var gitalk = new Gitalk({
|
||||
clientID: 'd0e566bfc45c0b852c6c',
|
||||
clientSecret: '6b69b3a841c85a6223e5a904c47f5e2d84322980',
|
||||
repo: 'gitalk',
|
||||
owner: 'flypythoncom',
|
||||
admin: gitalkAdmin,
|
||||
id: location.pathname.length > 50 ? location.pathname.substr(0,50) : location.pathname, // Ensure uniqueness and length less than 50
|
||||
distractionFreeMode: false // Facebook-like distraction free mode
|
||||
});
|
||||
gitalk.render('gitalk-container');
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
229
article/python-oa-02/index.html
Normal file
@@ -0,0 +1,229 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<head><meta name="generator" content="Hexo 3.9.0">
|
||||
<!-- Title -->
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="applicable-device" content="pc,mobile">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
||||
<meta name="author" content="flypython">
|
||||
<meta name="designer" content="flypython">
|
||||
<meta name="keywords" content="Python写入Word文档,FlyPython - 专业的Python学习社区,flypython, 飞蟒,飞蟒Python,Python入门,Python自动化,Python日报">
|
||||
<meta property="og:title" content="Python写入Word文档 | FlyPython - 专业的Python学习社区">
|
||||
<meta property="og:site_name" content="http://www.flypython.com">
|
||||
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:url" content="http://www.flypython.com/article/python-oa-02/">
|
||||
<meta property="og:image" content="http://www.flypython.com/images/oa2.jpg">
|
||||
<meta property="og:description" content="Python写入Word文档--极简Python自动化办公系列">
|
||||
<meta name="description" content="Python写入Word文档--极简Python自动化办公系列">
|
||||
|
||||
<meta name="rating" content="general">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="format-detection" content="telephone=yes">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="robots" content="index, follow">
|
||||
<link rel="icon" href="/images/favicon.ico">
|
||||
<title>Python写入Word文档 | FlyPython - 专业的Python学习社区</title>
|
||||
<link rel="stylesheet" href="/css/f25.css">
|
||||
<link rel="stylesheet" href="/css/highlight.css">
|
||||
|
||||
<link rel="stylesheet" href="/css/gitalk.css">
|
||||
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-147288599-1');
|
||||
</script>
|
||||
|
||||
</head>
|
||||
</head>
|
||||
<body>
|
||||
<header class="wrapper header-wrapper">
|
||||
<div class="container header-nav-wrapper">
|
||||
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
|
||||
<nav class="nav-wrapper">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
<span class="btn-menu" id="J_header_menu">
|
||||
<div class="inner">
|
||||
<span class="line line-01"></span>
|
||||
<span class="line line-02"></span>
|
||||
<span class="line line-03"></span>
|
||||
</div>
|
||||
</span>
|
||||
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
|
||||
<nav class="wrapper mb-nav-container">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<section class="body-wrapper">
|
||||
<section class="wrapper post-banner">
|
||||
<div class="container post-banner-container">
|
||||
<h2 class="wrapper title">Python写入Word文档</h2>
|
||||
<div class="wrapper tips">
|
||||
<span>Author:</span><span>flypython</span> | <span>Date: </span><span>2019-01-02</span> | <span>Category:</span><span><a href="/fly/自动化办公/" title="自动化办公">自动化办公</a></span>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="wrapper main-wrapper">
|
||||
<article class="sub-container post-content">
|
||||
<blockquote>
|
||||
<p>【极简Python 自动化办公】专栏是介绍如何利用python办公,减少工作负荷。篇幅精炼,内容易懂,无论是否有编程基础,都非常适合。</p>
|
||||
</blockquote>
|
||||
<p>在上次文章中,我们学习了【用python写入excel】,这次我们学习Python写word文档吧!</p>
|
||||
<p>场景:<br>有时候,办公室需要按模版生成的固定的文件,模板是固定的,只是每次需要替换信息。如下图的收入证明,模版中所有标黄的都是需要替换的信息:<br><img src="http://jcjview.github.io/img/pythonword_model0.png" alt><br>如果手工来做这个事情,每次至少需要10分钟的时间。假如每天要开15份,则至少要花2个半小时,而且手工编辑word很容易出错。</p>
|
||||
<p>可不可用python写个程序,解决这个问题呢?</p>
|
||||
<p>结论当然是肯定的!</p>
|
||||
<h2 id="0-摘要"><a href="#0-摘要" class="headerlink" title="0.摘要"></a>0.摘要</h2><p><strong>本文大约需要15分钟,建议在电脑上打开,边阅读边操作。</strong></p>
|
||||
<ol>
|
||||
<li>安装Python读写word模块,python-docx</li>
|
||||
<li>准备word模板,准备写入word文档内容</li>
|
||||
<li>编写python代码并运行</li>
|
||||
<li>通过读取excel表格中的信息,批量生成word文件</li>
|
||||
</ol>
|
||||
<h2 id="1-安装python-docx模块"><a href="#1-安装python-docx模块" class="headerlink" title="1.安装python-docx模块"></a>1.安装python-docx模块</h2><p>与上篇文章类似,需要在cmd窗口输入<code>pip install python-docx</code>。<br><img src="http://jcjview.github.io/img/flypython_python_docx_pip.png" alt></p>
|
||||
<h2 id="2-准备word模板,准备写入word文档内容"><a href="#2-准备word模板,准备写入word文档内容" class="headerlink" title="2.准备word模板,准备写入word文档内容"></a>2.准备word模板,准备写入word文档内容</h2><p>word模板如上所示,(可以不需要标黄),这里注意,需要替换的文字或数字位置,用”XXXX”来固定替代。保存为<code>个人收入证明.docx</code>。</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>名称</th>
|
||||
<th>内容</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody><tr>
|
||||
<td>姓名</td>
|
||||
<td>张三</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>身份证号</td>
|
||||
<td>104111199009103531</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>职务</td>
|
||||
<td>工程师</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>工作年限</td>
|
||||
<td>10</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>月收入</td>
|
||||
<td>10000</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>大写</td>
|
||||
<td>壹万元整</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>联系人</td>
|
||||
<td>李四</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>单位名称</td>
|
||||
<td>格物致知股份有限公司</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>单位地址</td>
|
||||
<td>珠海市横琴新区宝华路6号105室-67425</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>联系电话</td>
|
||||
<td>0756-8627528</td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
<h2 id="3-编写python代码并运行"><a href="#3-编写python代码并运行" class="headerlink" title="3. 编写python代码并运行"></a>3. 编写python代码并运行</h2><p>在word模板的同级目录,新建一个writeword.py文件,用记事本或其他文本编辑工具打开。</p>
|
||||
<p>编程思路:</p>
|
||||
<ol>
|
||||
<li>用python打开对应doc模板</li>
|
||||
<li>按顺序找到每一个需要替换的位置字符”XXXX”,替换为对应的内容</li>
|
||||
<li>另存为doc为另一个文件</li>
|
||||
</ol>
|
||||
<p>在文本编辑工具中输入如下代码,保存并关闭。</p>
|
||||
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br></pre></td><td class="code"><pre><span class="line">from docx import Document</span><br><span class="line">#准备写入内容</span><br><span class="line">name="张三"</span><br><span class="line">id_code="104111199009103531"</span><br><span class="line">career="工程师"</span><br><span class="line">working_years="10"</span><br><span class="line">salary="10000"</span><br><span class="line">salary_uppercase="壹万元整"</span><br><span class="line">contact="李四"</span><br><span class="line">company="格物厚德股份有限公司"</span><br><span class="line">address="珠海市横琴新区宝华路6号105室-67425"</span><br><span class="line">tel="0756-8627528"</span><br><span class="line">#打开doc</span><br><span class="line"></span><br><span class="line">textlist=[name,id_code,career,working_years,salary,salary_uppercase,company,address,contact,tel]</span><br><span class="line"></span><br><span class="line">doc = Document("个人收入证明.docx")</span><br><span class="line"></span><br><span class="line">count=0</span><br><span class="line"></span><br><span class="line">for p in doc.paragraphs:</span><br><span class="line"> if 'XXXX' in p.text:</span><br><span class="line"> inline = p.runs</span><br><span class="line"> for i in range(len(inline)):</span><br><span class="line"> if 'XXXX' in inline[i].text:</span><br><span class="line"> text = inline[i].text.replace('XXXX', textlist[count])</span><br><span class="line"> inline[i].text = text</span><br><span class="line"> count+=1</span><br><span class="line"> print(count)</span><br><span class="line">doc.save("%s_个人收入证明.docx"%name)</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>在同级目录,打开cmd,运行writeword.py <code>python writeword.py</code></p>
|
||||
<p>生成结果如下:<br><code>张三_个人收入证明.docx</code><br><img src="http://jcjview.github.io/img/pythonword2.png" alt></p>
|
||||
<h2 id="4-通过读取excel表格中的信息,批量生成word文件"><a href="#4-通过读取excel表格中的信息,批量生成word文件" class="headerlink" title="4.通过读取excel表格中的信息,批量生成word文件"></a>4.通过读取excel表格中的信息,批量生成word文件</h2><p>这里生成了对应word文件,但也有几个问题:</p>
|
||||
<ol>
|
||||
<li>对应的日期并没有自动填写,应当填写文件生成时对应的日期</li>
|
||||
<li>如果是生成大量同样word文档的话,目前的程序也需要一个一个改,并没有提升太多效率</li>
|
||||
</ol>
|
||||
<p>如果您看过我们之前的2篇用python读写excel的文章,您肯定就会想到,可以利用读取excel表格里的内容,批量生成对应的word文档。对,让我们继续吧!</p>
|
||||
<p>这里再准备一个excel文件,将需要批量写入的信息写在excel中,并保存为income.xlsx在同级目录,如下图:</p>
|
||||
<p><img src="http://jcjview.github.io/img/pythonword23.png" alt></p>
|
||||
<p>修改python 文件writeword.py</p>
|
||||
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br></pre></td><td class="code"><pre><span class="line">from docx import Document</span><br><span class="line">#准备写入内容</span><br><span class="line">import xlrd</span><br><span class="line">import time</span><br><span class="line"># 当前时间元组</span><br><span class="line">from datetime import datetime</span><br><span class="line">nt=datetime.now()</span><br><span class="line"># 可以输入中文年月日</span><br><span class="line">datestr=nt.strftime('%Y{y}%m{m}%d{d}').format(y='年', m='月', d='日')</span><br><span class="line"></span><br><span class="line">xlsx=xlrd.open_workbook('income.xlsx')</span><br><span class="line">sheet=xlsx.sheet_by_index(0)</span><br><span class="line">for row in range(1,sheet.nrows):</span><br><span class="line"> doc = Document("个人收入证明.docx")</span><br><span class="line"> count=0</span><br><span class="line"> textlist=[]</span><br><span class="line"> for col in range(0,sheet.ncols):</span><br><span class="line"> textlist.append(str(sheet.cell_value(row, col)))</span><br><span class="line"></span><br><span class="line"> for p in doc.paragraphs:</span><br><span class="line"> if 'XXXX' in p.text:</span><br><span class="line"> inline = p.runs</span><br><span class="line"> for i in range(len(inline)):</span><br><span class="line"> if 'XXXX' in inline[i].text:</span><br><span class="line"> text = inline[i].text.replace('XXXX', textlist[count])</span><br><span class="line"> inline[i].text = text</span><br><span class="line"> count+=1</span><br><span class="line"> if 'X 年 X 月 X 日' in p.text:</span><br><span class="line"> inline = p.runs</span><br><span class="line"> for i in range(len(inline)):</span><br><span class="line"> if 'X 年 X 月 X 日' in inline[i].text:</span><br><span class="line"> text = inline[i].text.replace('X 年 X 月 X 日', datestr)</span><br><span class="line"> inline[i].text = text</span><br><span class="line"></span><br><span class="line"> doc.save("%s_个人收入证明.docx"%textlist[0])</span><br></pre></td></tr></table></figure>
|
||||
|
||||
|
||||
<p> 运行后,输入结果:</p>
|
||||
<p><img src="http://jcjview.github.io/img/pythonword3.png" alt></p>
|
||||
<p><img src="http://jcjview.github.io/img/pythonword4.png" alt></p>
|
||||
<p><em>人生苦短,我用python早下班。如果觉得不错,对你工作中有帮助,请加我微信公众号flypython,我们一起探讨python相关问题</em></p>
|
||||
<p> <img src="https://flypython.com/images/wechat.png" alt="flypython微信公众号"></p>
|
||||
|
||||
</article>
|
||||
<div class="sub-container gitalk-wrapper" id="gitalk-container"></div>
|
||||
</section>
|
||||
|
||||
<div class="tips-top-wrapper">
|
||||
<span class="tip-top-container" onclick="scrollToWindowTop()">
|
||||
<span class="l-bar"></span>
|
||||
<span class="r-bar"></span>
|
||||
</span>
|
||||
</div>
|
||||
<footer class="wrapper footer-wrapper">
|
||||
<div class="container"><span class="copyright">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
<script src="/js/gitalk.min.js"></script>
|
||||
|
||||
<script>
|
||||
var gitalkAdmin = 'xxg1413'.split(',');
|
||||
var gitalk = new Gitalk({
|
||||
clientID: 'd0e566bfc45c0b852c6c',
|
||||
clientSecret: '6b69b3a841c85a6223e5a904c47f5e2d84322980',
|
||||
repo: 'gitalk',
|
||||
owner: 'flypythoncom',
|
||||
admin: gitalkAdmin,
|
||||
id: location.pathname.length > 50 ? location.pathname.substr(0,50) : location.pathname, // Ensure uniqueness and length less than 50
|
||||
distractionFreeMode: false // Facebook-like distraction free mode
|
||||
});
|
||||
gitalk.render('gitalk-container');
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
164
article/python-oa-03/index.html
Normal file
@@ -0,0 +1,164 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<head><meta name="generator" content="Hexo 3.9.0">
|
||||
<!-- Title -->
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="applicable-device" content="pc,mobile">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
||||
<meta name="author" content="flypython">
|
||||
<meta name="designer" content="flypython">
|
||||
<meta name="keywords" content="Python批量转换任意文档格式,FlyPython - 专业的Python学习社区,flypython, 飞蟒,飞蟒Python,Python入门,Python自动化,Python日报">
|
||||
<meta property="og:title" content="Python批量转换任意文档格式 | FlyPython - 专业的Python学习社区">
|
||||
<meta property="og:site_name" content="http://www.flypython.com">
|
||||
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:url" content="http://www.flypython.com/article/python-oa-03/">
|
||||
<meta property="og:image" content="http://www.flypython.com/images/oa3.jpg">
|
||||
<meta property="og:description" content="Python批量转换任意文档格式--极简Python自动化办公系列">
|
||||
<meta name="description" content="Python批量转换任意文档格式--极简Python自动化办公系列">
|
||||
|
||||
<meta name="rating" content="general">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="format-detection" content="telephone=yes">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="robots" content="index, follow">
|
||||
<link rel="icon" href="/images/favicon.ico">
|
||||
<title>Python批量转换任意文档格式 | FlyPython - 专业的Python学习社区</title>
|
||||
<link rel="stylesheet" href="/css/f25.css">
|
||||
<link rel="stylesheet" href="/css/highlight.css">
|
||||
|
||||
<link rel="stylesheet" href="/css/gitalk.css">
|
||||
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-147288599-1');
|
||||
</script>
|
||||
|
||||
</head>
|
||||
</head>
|
||||
<body>
|
||||
<header class="wrapper header-wrapper">
|
||||
<div class="container header-nav-wrapper">
|
||||
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
|
||||
<nav class="nav-wrapper">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
<span class="btn-menu" id="J_header_menu">
|
||||
<div class="inner">
|
||||
<span class="line line-01"></span>
|
||||
<span class="line line-02"></span>
|
||||
<span class="line line-03"></span>
|
||||
</div>
|
||||
</span>
|
||||
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
|
||||
<nav class="wrapper mb-nav-container">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<section class="body-wrapper">
|
||||
<section class="wrapper post-banner">
|
||||
<div class="container post-banner-container">
|
||||
<h2 class="wrapper title">Python批量转换任意文档格式</h2>
|
||||
<div class="wrapper tips">
|
||||
<span>Author:</span><span>flypython</span> | <span>Date: </span><span>2019-01-03</span> | <span>Category:</span><span><a href="/fly/自动化办公/" title="自动化办公">自动化办公</a></span>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="wrapper main-wrapper">
|
||||
<article class="sub-container post-content">
|
||||
<p>在工作中,常常会遇到文档格式的转换。如果数据不多,手工转换就可以。如果是大量文档,那我们应该怎么办呢?</p>
|
||||
<p>今天我们将使用Python来批量处理文档转换的问题.</p>
|
||||
<h4 id="关于unoconv"><a href="#关于unoconv" class="headerlink" title="关于unoconv"></a>关于unoconv</h4><p>unoconv是一款跨平台的工具,用于格式转换,支持命令行。底层实现是依赖于开源的LibreOffice/OpenOffice。</p>
|
||||
<p>项目地址:<a href="https://github.com/unoconv/unoconv" target="_blank" rel="noopener">https://github.com/unoconv/unoconv</a></p>
|
||||
<p>文档地址: <a href="http://dag.wiee.rs/home-made/unoconv/" target="_blank" rel="noopener">http://dag.wiee.rs/home-made/unoconv/</a></p>
|
||||
<p>根据unoconv的文档介绍,支持上百种文档格式的转换,已经覆盖了绝大部分的需求。</p>
|
||||
<h4 id="使用unoconv"><a href="#使用unoconv" class="headerlink" title="使用unoconv"></a>使用unoconv</h4><p>安装unoconv比较繁琐,而且需要针对中文进行进一步的字符集配置。我们可以选择别人已经集成好的服务来进行操作,在这里我们选择了docker-unoconv-webservice项目。</p>
|
||||
<p>项目地址为: <a href="https://github.com/zrrrzzt/docker-unoconv-webservice" target="_blank" rel="noopener">https://github.com/zrrrzzt/docker-unoconv-webservice</a></p>
|
||||
<p>查看项目的README,接口如下: </p>
|
||||
<p><code>curl --form file=@myfile.docx http://localhost/unoconv/pdf > myfile.pdf</code></p>
|
||||
<p>我们使用下列命令,先把项目的镜像pull下来</p>
|
||||
<p><code>docker pull zrrrzzt/docker-unoconv-webservice</code></p>
|
||||
<p>然后启动命令如下:</p>
|
||||
<p><code>docker run -d -p 80:3000 zrrrzzt/docker-unoconv-webservice</code></p>
|
||||
<p>服务在80端口上提供服务,如果80端口被占用,可以调整为其他的端口</p>
|
||||
<p>确认服务正在运行:</p>
|
||||
<p><code>docker ps | grep zrrrzzt/docker-unoconv-webservice</code></p>
|
||||
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">[flypython] docker ps | grep zrrrzzt/docker-unoconv-webservice </span><br><span class="line">c014cf335b31 zrrrzzt/docker-unoconv-webservice "/bin/sh -c '/usr/bi…" 2 minutes ago Up 2 minutes 0.0.0.0:80->3000/tcp brave_blackburn</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>从docx转换为pdf:</p>
|
||||
<p><code>curl --form file=@demo.docx http://localhost/unoconv/pdf > demo.pdf</code> </p>
|
||||
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">[flypython] curl --form file=@demo.docx http://localhost/unoconv/pdf > demo.pdf </span><br><span class="line"> % Total % Received % Xferd Average Speed Time Time Time Current</span><br><span class="line"> Dload Upload Total Spent Left Speed</span><br><span class="line">100 12089 100 4242 100 7847 2532 4684 0:00:01 0:00:01 --:--:-- 7213</span><br><span class="line">[flypython] ls demo* </span><br><span class="line">demo.docx demo.pdf</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<h4 id="使用Python批量请求"><a href="#使用Python批量请求" class="headerlink" title="使用Python批量请求"></a>使用Python批量请求</h4><p>Python批量请求的思路是,把需要转换的文档发送到服务器,服务器会返回转换后的格式,我们保存为文件就可以了。</p>
|
||||
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line">def post_file(url,path):</span><br><span class="line"> filename = os.path.basename(path)</span><br><span class="line"> convert_name = str(filename).split('.')[0] + '.pdf'</span><br><span class="line"></span><br><span class="line"> m = MultipartEncoder(</span><br><span class="line"> fields= {</span><br><span class="line"> 'file':(filename,open(path,'rb')),</span><br><span class="line"> }</span><br><span class="line"> )</span><br><span class="line"> response = requests.request('POST', url, data=m, headers={'Content-Type':m.content_type})</span><br><span class="line"></span><br><span class="line"> with open(convert_name, 'wb') as f:</span><br><span class="line"> f.write(response.content)</span><br><span class="line"></span><br><span class="line"> return convert_name</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>好了,更多类型转换,更完整的应用需要你根据业务来完善,这次的介绍就到这里了。demo完整代码在github上,点击原文可以获取。</p>
|
||||
<p><a href="https://github.com/flypythoncom/flypython/blob/master/convert.py" target="_blank" rel="noopener">https://github.com/flypythoncom/flypython/blob/master/convert.py</a></p>
|
||||
|
||||
</article>
|
||||
<div class="sub-container gitalk-wrapper" id="gitalk-container"></div>
|
||||
</section>
|
||||
|
||||
<div class="tips-top-wrapper">
|
||||
<span class="tip-top-container" onclick="scrollToWindowTop()">
|
||||
<span class="l-bar"></span>
|
||||
<span class="r-bar"></span>
|
||||
</span>
|
||||
</div>
|
||||
<footer class="wrapper footer-wrapper">
|
||||
<div class="container"><span class="copyright">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
<script src="/js/gitalk.min.js"></script>
|
||||
|
||||
<script>
|
||||
var gitalkAdmin = 'xxg1413'.split(',');
|
||||
var gitalk = new Gitalk({
|
||||
clientID: 'd0e566bfc45c0b852c6c',
|
||||
clientSecret: '6b69b3a841c85a6223e5a904c47f5e2d84322980',
|
||||
repo: 'gitalk',
|
||||
owner: 'flypythoncom',
|
||||
admin: gitalkAdmin,
|
||||
id: location.pathname.length > 50 ? location.pathname.substr(0,50) : location.pathname, // Ensure uniqueness and length less than 50
|
||||
distractionFreeMode: false // Facebook-like distraction free mode
|
||||
});
|
||||
gitalk.render('gitalk-container');
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
174
article/python-oa-04/index.html
Normal file
@@ -0,0 +1,174 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<head><meta name="generator" content="Hexo 3.9.0">
|
||||
<!-- Title -->
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="applicable-device" content="pc,mobile">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
||||
<meta name="author" content="flypython">
|
||||
<meta name="designer" content="flypython">
|
||||
<meta name="keywords" content="Python读取PDF文字和表格,FlyPython - 专业的Python学习社区,flypython, 飞蟒,飞蟒Python,Python入门,Python自动化,Python日报">
|
||||
<meta property="og:title" content="Python读取PDF文字和表格 | FlyPython - 专业的Python学习社区">
|
||||
<meta property="og:site_name" content="http://www.flypython.com">
|
||||
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:url" content="http://www.flypython.com/article/python-oa-04/">
|
||||
<meta property="og:image" content="http://www.flypython.com/images/oa4.jpg">
|
||||
<meta property="og:description" content="Python读取PDF文字和表格--极简Python自动化办公系列">
|
||||
<meta name="description" content="Python读取PDF文字和表格--极简Python自动化办公系列">
|
||||
|
||||
<meta name="rating" content="general">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="format-detection" content="telephone=yes">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="robots" content="index, follow">
|
||||
<link rel="icon" href="/images/favicon.ico">
|
||||
<title>Python读取PDF文字和表格 | FlyPython - 专业的Python学习社区</title>
|
||||
<link rel="stylesheet" href="/css/f25.css">
|
||||
<link rel="stylesheet" href="/css/highlight.css">
|
||||
|
||||
<link rel="stylesheet" href="/css/gitalk.css">
|
||||
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-147288599-1');
|
||||
</script>
|
||||
|
||||
</head>
|
||||
</head>
|
||||
<body>
|
||||
<header class="wrapper header-wrapper">
|
||||
<div class="container header-nav-wrapper">
|
||||
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
|
||||
<nav class="nav-wrapper">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
<span class="btn-menu" id="J_header_menu">
|
||||
<div class="inner">
|
||||
<span class="line line-01"></span>
|
||||
<span class="line line-02"></span>
|
||||
<span class="line line-03"></span>
|
||||
</div>
|
||||
</span>
|
||||
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
|
||||
<nav class="wrapper mb-nav-container">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<section class="body-wrapper">
|
||||
<section class="wrapper post-banner">
|
||||
<div class="container post-banner-container">
|
||||
<h2 class="wrapper title">Python读取PDF文字和表格</h2>
|
||||
<div class="wrapper tips">
|
||||
<span>Author:</span><span>flypython</span> | <span>Date: </span><span>2019-01-04</span> | <span>Category:</span><span><a href="/fly/自动化办公/" title="自动化办公">自动化办公</a></span>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="wrapper main-wrapper">
|
||||
<article class="sub-container post-content">
|
||||
<blockquote>
|
||||
<p>【极简Python 自动化办公】专栏是介绍如何利用python办公,减少工作负荷。篇幅精炼,内容易懂,无论是否有编程基础,都非常适合。</p>
|
||||
</blockquote>
|
||||
<p>在日常的工作中,处理PDF是最平常不过的事情了。今天带来极简Python自动化办公系列之使用Python提取Pdf文字和表格,希望能够在PDF处理上帮到你。</p>
|
||||
<p>这次我们准备了一个pdf测试文件,内容如下:</p>
|
||||
<p><img src="https://tva1.sinaimg.cn/large/006y8mN6ly1g8e0nlr7gdj30kc0zcjua.jpg" alt></p>
|
||||
<p>pdf中包括了2页,有文字,图片和表格,覆盖了大部分pdf的场景。</p>
|
||||
<h4 id="pdfplumber介绍"><a href="#pdfplumber介绍" class="headerlink" title="pdfplumber介绍"></a>pdfplumber介绍</h4><p>Pdfplumber是一个可以处理pdf格式信息的库。它可以查找关于每个文本字符、矩阵、和行的详细信息,也可以对表格进行提取并进行可视化调试。</p>
|
||||
<p>官方repo:<br> <code>https://github.com/jsvine/pdfplumber</code></p>
|
||||
<p>安装:<br><code>pip install pdfplumber</code></p>
|
||||
<h4 id="使用入门"><a href="#使用入门" class="headerlink" title="使用入门"></a>使用入门</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">import pdfplumber</span><br><span class="line"> </span><br><span class="line">with pdfplumber.open("test.pdf") as pdf:</span><br><span class="line"> first_page = pdf.pages[0] #取第一页</span><br><span class="line"> print(first_page.chars[0])#打印第一页第一个字文字信息</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>结果:</p>
|
||||
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">{'fontname': 'CRSMRF+PingFangTC-Semibold', 'adv': Decimal('1.000'), 'upright': 1, 'x0': Decimal('57.000'), 'y0': Decimal('751.840'), 'x1': Decimal('81.000'), 'y1': Decimal('779.776'), 'width': Decimal('24.000'), 'height': Decimal('27.936'), 'size': Decimal('27.936'), 'object_type': 'char', 'page_number': 1, 'text': '关', 'top': Decimal('62.224'), 'bottom': Decimal('90.160'), 'doctop': Decimal('62.224')}</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>格式化之后:</p>
|
||||
<p><img src="https://tva1.sinaimg.cn/large/006y8mN6ly1g8e0nm8qvij30kq0hi0um.jpg" alt></p>
|
||||
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><span class="line">{</span><br><span class="line"> "fontname":"CRSMRF+PingFangTC-Semibold",</span><br><span class="line"> "adv":"1.000",</span><br><span class="line"> "upright":1,</span><br><span class="line"> "x0":"57.000",</span><br><span class="line"> "y0":"751.840",</span><br><span class="line"> "x1":"81.000",</span><br><span class="line"> "y1":"779.776",</span><br><span class="line"> "width":"24.000",</span><br><span class="line"> "height":"27.936",</span><br><span class="line"> "size":"27.936",</span><br><span class="line"> "object_type":"char",</span><br><span class="line"> "page_number":1, #页数</span><br><span class="line"> "text":"关", #第一个文字</span><br><span class="line"> "top":"62.224",</span><br><span class="line"> "bottom":"90.160",</span><br><span class="line"> "doctop":"62.224"</span><br><span class="line">}</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<h4 id="常用方法"><a href="#常用方法" class="headerlink" title="常用方法"></a>常用方法</h4><ul>
|
||||
<li>extract_text() 用来提页面中的文本,将页面的所有字符对象整理为一个字符串</li>
|
||||
<li>extract_words() 返回的是所有的单词及其相关信息</li>
|
||||
<li>extract_tables() 提取页面的表格</li>
|
||||
</ul>
|
||||
<h4 id="提取文字"><a href="#提取文字" class="headerlink" title="提取文字"></a>提取文字</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">#!/usr/bin/env python3</span><br><span class="line"></span><br><span class="line">import pdfplumber</span><br><span class="line"></span><br><span class="line">with pdfplumber.open("test.pdf") as pdf:</span><br><span class="line"> first_page = pdf.pages[0]</span><br><span class="line"> text = first_page.extract_text() #提取第一页的所有文字</span><br><span class="line"> print(text)</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p><img src="https://tva1.sinaimg.cn/large/006y8mN6ly1g8e0nmzq4wj30r007wgms.jpg" alt></p>
|
||||
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">关于我们</span><br><span class="line">关于FlyPython</span><br><span class="line">FlyPython是提供⼀站式Python编程学习的组织,我们致⼒于为⽤户提供⾼</span><br><span class="line">效,有趣的学习环境,打造专注于Python的中⽂学习社区。</span><br><span class="line">联系我们</span><br><span class="line">客服&合作: 微信号 flypython</span><br><span class="line">微信公众号:</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<h4 id="提取表格"><a href="#提取表格" class="headerlink" title="提取表格"></a>提取表格</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line">#!/usr/bin/env python3</span><br><span class="line"></span><br><span class="line">import pdfplumber</span><br><span class="line">import pandas as pd</span><br><span class="line"></span><br><span class="line">with pdfplumber.open("test.pdf") as pdf:</span><br><span class="line"> first_page = pdf.pages[0]</span><br><span class="line"> text = first_page.extract_text()</span><br><span class="line"> print(text)</span><br><span class="line"></span><br><span class="line"> second_page = pdf.pages[1] #第二页</span><br><span class="line"> table = second_page.extract_tables()#在第二页提取表格</span><br><span class="line"> for t in table:</span><br><span class="line"> df = pd.DataFrame(t[1:],columns=t[0])</span><br><span class="line"> print(df)</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p><img src="https://tva1.sinaimg.cn/large/006y8mN6ly1g8e0no9hykj30po0f8wg9.jpg" alt></p>
|
||||
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"> 分类 书名</span><br><span class="line">0 Python入门 Python编程:从入门到\n实践</span><br><span class="line">1 Python中级 流畅的Python</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<h4 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h4><p>pdfplumber的接口还是很容易的,如果只是需要提取文字,几行代码就可以提取到。如果是表格并没有提取出来或者错误的提取了非表格的内容,你需要在提取表格时加入<code>table_settings</code>参数来指定表格的设置。</p>
|
||||
<p>这次的demo中,图片并没有提取出来,pdf图片的提取会放到下一篇文章,敬请期待。</p>
|
||||
<p><em>人生苦短,我用python早下班。如果觉得不错,对你工作中有帮助,可以长按下列二维码关注我们的公众号。</em></p>
|
||||
<p> <img src="https://flypython.com/images/wechat.png" alt="flypython微信公众号"></p>
|
||||
|
||||
</article>
|
||||
<div class="sub-container gitalk-wrapper" id="gitalk-container"></div>
|
||||
</section>
|
||||
|
||||
<div class="tips-top-wrapper">
|
||||
<span class="tip-top-container" onclick="scrollToWindowTop()">
|
||||
<span class="l-bar"></span>
|
||||
<span class="r-bar"></span>
|
||||
</span>
|
||||
</div>
|
||||
<footer class="wrapper footer-wrapper">
|
||||
<div class="container"><span class="copyright">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
<script src="/js/gitalk.min.js"></script>
|
||||
|
||||
<script>
|
||||
var gitalkAdmin = 'xxg1413'.split(',');
|
||||
var gitalk = new Gitalk({
|
||||
clientID: 'd0e566bfc45c0b852c6c',
|
||||
clientSecret: '6b69b3a841c85a6223e5a904c47f5e2d84322980',
|
||||
repo: 'gitalk',
|
||||
owner: 'flypythoncom',
|
||||
admin: gitalkAdmin,
|
||||
id: location.pathname.length > 50 ? location.pathname.substr(0,50) : location.pathname, // Ensure uniqueness and length less than 50
|
||||
distractionFreeMode: false // Facebook-like distraction free mode
|
||||
});
|
||||
gitalk.render('gitalk-container');
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
159
article/python-oa-05/index.html
Normal file
@@ -0,0 +1,159 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<head><meta name="generator" content="Hexo 3.9.0">
|
||||
<!-- Title -->
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="applicable-device" content="pc,mobile">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
||||
<meta name="author" content="flypython">
|
||||
<meta name="designer" content="flypython">
|
||||
<meta name="keywords" content="Python读取PDF图片,FlyPython - 专业的Python学习社区,flypython, 飞蟒,飞蟒Python,Python入门,Python自动化,Python日报">
|
||||
<meta property="og:title" content="Python读取PDF图片 | FlyPython - 专业的Python学习社区">
|
||||
<meta property="og:site_name" content="http://www.flypython.com">
|
||||
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:url" content="http://www.flypython.com/article/python-oa-05/">
|
||||
<meta property="og:image" content="http://www.flypython.com/images/oa4.jpg">
|
||||
<meta property="og:description" content="Python读取PDF图片--极简Python自动化办公系列">
|
||||
<meta name="description" content="Python读取PDF图片--极简Python自动化办公系列">
|
||||
|
||||
<meta name="rating" content="general">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="format-detection" content="telephone=yes">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="robots" content="index, follow">
|
||||
<link rel="icon" href="/images/favicon.ico">
|
||||
<title>Python读取PDF图片 | FlyPython - 专业的Python学习社区</title>
|
||||
<link rel="stylesheet" href="/css/f25.css">
|
||||
<link rel="stylesheet" href="/css/highlight.css">
|
||||
|
||||
<link rel="stylesheet" href="/css/gitalk.css">
|
||||
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-147288599-1');
|
||||
</script>
|
||||
|
||||
</head>
|
||||
</head>
|
||||
<body>
|
||||
<header class="wrapper header-wrapper">
|
||||
<div class="container header-nav-wrapper">
|
||||
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
|
||||
<nav class="nav-wrapper">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
<span class="btn-menu" id="J_header_menu">
|
||||
<div class="inner">
|
||||
<span class="line line-01"></span>
|
||||
<span class="line line-02"></span>
|
||||
<span class="line line-03"></span>
|
||||
</div>
|
||||
</span>
|
||||
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
|
||||
<nav class="wrapper mb-nav-container">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<section class="body-wrapper">
|
||||
<section class="wrapper post-banner">
|
||||
<div class="container post-banner-container">
|
||||
<h2 class="wrapper title">Python读取PDF图片</h2>
|
||||
<div class="wrapper tips">
|
||||
<span>Author:</span><span>flypython</span> | <span>Date: </span><span>2019-01-05</span> | <span>Category:</span><span><a href="/fly/自动化办公/" title="自动化办公">自动化办公</a></span>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="wrapper main-wrapper">
|
||||
<article class="sub-container post-content">
|
||||
<blockquote>
|
||||
<p>【极简Python 自动化办公】专栏是介绍如何利用python办公,减少工作负荷。篇幅精炼,内容易懂,无论是否有编程基础,都非常适合。</p>
|
||||
</blockquote>
|
||||
<p>在上次的文章中,我们从PDF中提取了文字和表格,这次我们需要提取图片。</p>
|
||||
<p>还是先来看看我们上次的测试例子</p>
|
||||
<p><img src="https://tva1.sinaimg.cn/large/006y8mN6ly1g8e0nlr7gdj30kc0zcjua.jpg" alt></p>
|
||||
<p>这次我们要提取第一页的二维码图片。</p>
|
||||
<h4 id="fitz介绍"><a href="#fitz介绍" class="headerlink" title="fitz介绍"></a>fitz介绍</h4><p>pymupdf是mupdf的Python绑定,而今天我们要使用的fitz是pymupdf的子模块。需要的时候,使用pip安装。</p>
|
||||
<p><code>pip install pymupdf</code></p>
|
||||
<p>导入的时使用<code>import fitz</code>导入模块。</p>
|
||||
<p>更多信息可参考pymupdf的文档:<br><code>https://pymupdf.readthedocs.io/en/latest/intro/</code></p>
|
||||
<h4 id="提取图片"><a href="#提取图片" class="headerlink" title="提取图片"></a>提取图片</h4><p>提取图片的思路是通过正则表达式找到图片对象,然后保存为图片格式。</p>
|
||||
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br></pre></td><td class="code"><pre><span class="line">#!/usr/bin/env python3</span><br><span class="line"></span><br><span class="line">import fitz #pip install pymupdf</span><br><span class="line">import re</span><br><span class="line">import os</span><br><span class="line"></span><br><span class="line">def find_imag(path,img_path):</span><br><span class="line"></span><br><span class="line"> checkXO = r"/Type(?= */XObject)"</span><br><span class="line"> checkIM = r"/Subtype(?= */Image)"</span><br><span class="line"></span><br><span class="line"> pdf = fitz.open(path)</span><br><span class="line"></span><br><span class="line"> img_count = 0</span><br><span class="line"> len_XREF = pdf._getXrefLength()</span><br><span class="line"></span><br><span class="line"> print("文件名:{}, 页数: {}, 对象: {}".format(path, len(pdf), len_XREF - 1))</span><br><span class="line"></span><br><span class="line"> for i in range(1, len_XREF):</span><br><span class="line"> text = pdf._getXrefString(i)</span><br><span class="line"> isXObject = re.search(checkXO, text)</span><br><span class="line"></span><br><span class="line"> # 使用正则表达式查看是否是图片</span><br><span class="line"> isImage = re.search(checkIM, text)</span><br><span class="line"></span><br><span class="line"> # 如果不是对象也不是图片,则continue</span><br><span class="line"> if not isXObject or not isImage:</span><br><span class="line"> continue</span><br><span class="line"> img_count += 1</span><br><span class="line"> # 根据索引生成图像</span><br><span class="line"> pix = fitz.Pixmap(pdf, i)</span><br><span class="line"> </span><br><span class="line"> new_name = path.replace('\\', '_') + "_img{}.png".format(img_count)</span><br><span class="line"> new_name = new_name.replace(':', '')</span><br><span class="line"></span><br><span class="line"> # 如果pix.n<5,可以直接存为PNG</span><br><span class="line"> if pix.n < 5:</span><br><span class="line"> pix.writePNG(os.path.join(img_path, new_name))</span><br><span class="line"> </span><br><span class="line"> else:</span><br><span class="line"> pix0 = fitz.Pixmap(fitz.csRGB, pix)</span><br><span class="line"> pix0.writePNG(os.path.join(img_path, new_name))</span><br><span class="line"> pix0 = None</span><br><span class="line"> </span><br><span class="line"> pix = None</span><br><span class="line"> </span><br><span class="line"> print("提取了{}张图片".format(img_count))</span><br><span class="line"></span><br><span class="line"></span><br><span class="line">if __name__=='__main__':</span><br><span class="line"> pdf_path = r'test.pdf'</span><br><span class="line"> img_path = r'img'</span><br><span class="line"> m = find_imag(pdf_path, img_path)</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>运行程序结果:</p>
|
||||
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">[pdf] python3 pdf_img.py</span><br><span class="line">文件名:test.pdf, 页数: 2, 对象: 115</span><br><span class="line">提取了1张图片</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>在img目录中,已经存在了我们需要的文件</p>
|
||||
<p><img src="https://tva1.sinaimg.cn/large/006y8mN6ly1g8osipfp3uj30uu0jqgrw.jpg" alt></p>
|
||||
<h4 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h4><p>pymupdf的使用,今天就简单介绍到这里。更多的功能请参考pymupdf文档。</p>
|
||||
<p>下一篇,我们将带来pdf转换为图片的讨论。</p>
|
||||
<p><em>人生苦短,我用python早下班。如果觉得不错,对你工作中有帮助,可以长按下列二维码关注我们的公众号。</em></p>
|
||||
<p> <img src="https://tva1.sinaimg.cn/large/006y8mN6ly1g8pj2981c1j3076076mxn.jpg" alt="flypython微信公众号"></p>
|
||||
|
||||
</article>
|
||||
<div class="sub-container gitalk-wrapper" id="gitalk-container"></div>
|
||||
</section>
|
||||
|
||||
<div class="tips-top-wrapper">
|
||||
<span class="tip-top-container" onclick="scrollToWindowTop()">
|
||||
<span class="l-bar"></span>
|
||||
<span class="r-bar"></span>
|
||||
</span>
|
||||
</div>
|
||||
<footer class="wrapper footer-wrapper">
|
||||
<div class="container"><span class="copyright">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
<script src="/js/gitalk.min.js"></script>
|
||||
|
||||
<script>
|
||||
var gitalkAdmin = 'xxg1413'.split(',');
|
||||
var gitalk = new Gitalk({
|
||||
clientID: 'd0e566bfc45c0b852c6c',
|
||||
clientSecret: '6b69b3a841c85a6223e5a904c47f5e2d84322980',
|
||||
repo: 'gitalk',
|
||||
owner: 'flypythoncom',
|
||||
admin: gitalkAdmin,
|
||||
id: location.pathname.length > 50 ? location.pathname.substr(0,50) : location.pathname, // Ensure uniqueness and length less than 50
|
||||
distractionFreeMode: false // Facebook-like distraction free mode
|
||||
});
|
||||
gitalk.render('gitalk-container');
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
174
article/python-tutorial-01/index.html
Normal file
@@ -0,0 +1,174 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<head><meta name="generator" content="Hexo 3.9.0">
|
||||
<!-- Title -->
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="applicable-device" content="pc,mobile">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
||||
<meta name="author" content="flypython">
|
||||
<meta name="designer" content="flypython">
|
||||
<meta name="keywords" content="你是如何自学Python的?,FlyPython - 专业的Python学习社区,flypython, 飞蟒,飞蟒Python,Python入门,Python自动化,Python日报">
|
||||
<meta property="og:title" content="你是如何自学Python的? | FlyPython - 专业的Python学习社区">
|
||||
<meta property="og:site_name" content="http://www.flypython.com">
|
||||
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:url" content="http://www.flypython.com/article/python-tutorial-01/">
|
||||
<meta property="og:image" content="http://www.flypython.com/images/tutorial1.png">
|
||||
<meta property="og:description" content="你是如何自学Python的?--Python入门教程">
|
||||
<meta name="description" content="你是如何自学Python的?--Python入门教程">
|
||||
|
||||
<meta name="rating" content="general">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="format-detection" content="telephone=yes">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="robots" content="index, follow">
|
||||
<link rel="icon" href="/images/favicon.ico">
|
||||
<title>你是如何自学Python的? | FlyPython - 专业的Python学习社区</title>
|
||||
<link rel="stylesheet" href="/css/f25.css">
|
||||
<link rel="stylesheet" href="/css/highlight.css">
|
||||
|
||||
<link rel="stylesheet" href="/css/gitalk.css">
|
||||
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-147288599-1');
|
||||
</script>
|
||||
|
||||
</head>
|
||||
</head>
|
||||
<body>
|
||||
<header class="wrapper header-wrapper">
|
||||
<div class="container header-nav-wrapper">
|
||||
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
|
||||
<nav class="nav-wrapper">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
<span class="btn-menu" id="J_header_menu">
|
||||
<div class="inner">
|
||||
<span class="line line-01"></span>
|
||||
<span class="line line-02"></span>
|
||||
<span class="line line-03"></span>
|
||||
</div>
|
||||
</span>
|
||||
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
|
||||
<nav class="wrapper mb-nav-container">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<section class="body-wrapper">
|
||||
<section class="wrapper post-banner">
|
||||
<div class="container post-banner-container">
|
||||
<h2 class="wrapper title">你是如何自学Python的?</h2>
|
||||
<div class="wrapper tips">
|
||||
<span>Author:</span><span>flypython</span> | <span>Date: </span><span>2019-02-01</span> | <span>Category:</span><span><a href="/fly/Python入门/" title="Python入门">Python入门</a></span>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="wrapper main-wrapper">
|
||||
<article class="sub-container post-content">
|
||||
<h1 id="你是如何自学-Python-的?"><a href="#你是如何自学-Python-的?" class="headerlink" title="你是如何自学 Python 的?"></a>你是如何自学 Python 的?</h1><p><img src="http://jcjview.github.io/img/flypythonflypython001.jpg" alt></p>
|
||||
<p>why python?</p>
|
||||
<blockquote>
|
||||
<p>你可能听说过python</p>
|
||||
<p>Python入门相对容易又可以干很多事(网站,>运维,数据,爬虫等),是一门方便的工具语言。<br><strong>2019年8月TIOBE排名显示Python已经名列第3</strong>,仅次于java和c,并且还在快速增长中。</p>
|
||||
</blockquote>
|
||||
<h2 id="Python的使用场景"><a href="#Python的使用场景" class="headerlink" title="Python的使用场景"></a>Python的使用场景</h2><h3 id="01-数据分析"><a href="#01-数据分析" class="headerlink" title="01 数据分析"></a>01 数据分析</h3><p>对于数据分析和机器学习,Python是首选编程语言。python有众多数据分析工具,知名数据分析比赛网站kaggle,90%以上的竞赛代码都是用python写成。大数据平台如spark、flink,python有完整的支持api可调用。</p>
|
||||
<h3 id="02-网站开发"><a href="#02-网站开发" class="headerlink" title="02 网站开发"></a>02 网站开发</h3><p>对于网站开发,Python的生态环境也可以支撑起重量级的产品。<br>国外的Youtube,Instagram,Pinterest,Reddit,Dropbox,Disqus, Quora等知名应用一开始都是基于Python构建,国内的豆瓣,知乎,果壳,饿了么,等初期在也是Python应用的典型。</p>
|
||||
<h3 id="03-爬虫"><a href="#03-爬虫" class="headerlink" title="03 爬虫"></a>03 爬虫</h3><p>对于爬虫,则想不到比python更方便、更通用的的语言了。Python极其丰富的生态,诸如Request、Beautiful Soup、Scrapy、PySpider等第三方库,加上简洁易上手的语法,分分钟就能让你写出一个爬虫来。</p>
|
||||
<p>此外,还有机器学习、人工智能、科学计算、IT运维等领域,Python都是极其方便顺手的工具,更重要的是,永远开源,免费。</p>
|
||||
<h2 id="Python的就业前景"><a href="#Python的就业前景" class="headerlink" title="Python的就业前景"></a>Python的就业前景</h2><p>在it行业飞速发展的今天,在数据成为it命脉的时代,python的重要意义越来越不言自明。学习python,不仅仅是一门可以调用数据结构和算法的语言,在学会python的同时,可以同时学会爬取互联网海量资源,学会自动化分析互联网海量数据,学会制作展示宣传的网站,学会使用人工智能预测和改变世界。</p>
|
||||
<p>学习一门语言,得到多种技能,以及大数据的思维方式,何乐而不为呢。</p>
|
||||
<h3 id="Python有多火?"><a href="#Python有多火?" class="headerlink" title="Python有多火?"></a>Python有多火?</h3><p>Python有多火?大多数IT研发岗位,都需要Python程序员;甚至许多非研发岗位,纷纷在JD中给出精通Python技能者优先的字样。</p>
|
||||
<p><img src="http://jcjview.github.io/img/flypythonpython%20job.jpg" alt></p>
|
||||
<p><img src="http://jcjview.github.io/img/flypythonpython%20job2.jpg" alt></p>
|
||||
<h2 id="Python的学习曲线"><a href="#Python的学习曲线" class="headerlink" title="Python的学习曲线"></a>Python的学习曲线</h2><p>对于爱好者来说, python上手非常容易,学习曲线非常平滑。基本的例子,几行代码都能完成。</p>
|
||||
<p>python代码环境安装几乎是傻瓜式的,不像java要考虑众多库的配置和解决冲突。如果有编程的基础甚至只需要几小时就能上手,即使没有基础的小白,通过努力,7-10天,每天1小时,也可以快速掌握基本编程技巧。</p>
|
||||
<h2 id="Python的学习资料"><a href="#Python的学习资料" class="headerlink" title="Python的学习资料"></a>Python的学习资料</h2><p>Python官网<br>Python.org</p>
|
||||
<p>廖雪峰的Python教程<br><a href="https://www.liaoxuefeng.com/" target="_blank" rel="noopener">https://www.liaoxuefeng.com/</a></p>
|
||||
<p>简明python教程<br><a href="http://www.kuqin.com/abyteofpython_cn/" target="_blank" rel="noopener">http://www.kuqin.com/abyteofpython_cn/</a></p>
|
||||
<hr>
|
||||
<p>重点推荐书籍:《Python 基础教程》</p>
|
||||
<p><img src="http://jcjview.github.io/img/flypythonflpython001zhihu.jpg" alt></p>
|
||||
<p>知乎评价:<br><img src="http://jcjview.github.io/img/flypythonflpython001zhihu002.jpg" alt></p>
|
||||
<p>其他入门书籍:</p>
|
||||
<ul>
|
||||
<li>Head First Python</li>
|
||||
<li>Dive Into Python</li>
|
||||
<li>Python 核心编程</li>
|
||||
<li>深入理解 Python</li>
|
||||
<li>Python 标准库</li>
|
||||
<li>Python 编程指南</li>
|
||||
</ul>
|
||||
<p>(我们搜集了一些网上的电子书版本,关注公众号,回复”python”获取)</p>
|
||||
<p>当然,英文著作虽然经典,但涉及领域众多,概念多,信息量大,不适合速成。网上的资料丰富,但也鱼龙混杂。</p>
|
||||
<p>以 “Python入门” 为关键字搜索出的结果成千上万。不少小白选手难免会东一榔头西一棒槌,最终看了很多文章,却仍没跨过新手那道门槛。</p>
|
||||
<p>我们这里有一个python的入门课程,帮你把需要掌握的python基础知识都融汇贯通在小篇幅中。我们提供了很多有趣的实践项目,并且可以进群,互助学习,遇到困难有人来解答。</p>
|
||||
<p>加群请关注公众号,并回复“训练营”<br> <img src="https://flypython.com/images/wechat.png" alt="flypython微信公众号"></p>
|
||||
|
||||
</article>
|
||||
<div class="sub-container gitalk-wrapper" id="gitalk-container"></div>
|
||||
</section>
|
||||
|
||||
<div class="tips-top-wrapper">
|
||||
<span class="tip-top-container" onclick="scrollToWindowTop()">
|
||||
<span class="l-bar"></span>
|
||||
<span class="r-bar"></span>
|
||||
</span>
|
||||
</div>
|
||||
<footer class="wrapper footer-wrapper">
|
||||
<div class="container"><span class="copyright">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
<script src="/js/gitalk.min.js"></script>
|
||||
|
||||
<script>
|
||||
var gitalkAdmin = 'xxg1413'.split(',');
|
||||
var gitalk = new Gitalk({
|
||||
clientID: 'd0e566bfc45c0b852c6c',
|
||||
clientSecret: '6b69b3a841c85a6223e5a904c47f5e2d84322980',
|
||||
repo: 'gitalk',
|
||||
owner: 'flypythoncom',
|
||||
admin: gitalkAdmin,
|
||||
id: location.pathname.length > 50 ? location.pathname.substr(0,50) : location.pathname, // Ensure uniqueness and length less than 50
|
||||
distractionFreeMode: false // Facebook-like distraction free mode
|
||||
});
|
||||
gitalk.render('gitalk-container');
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
179
article/python-tutorial-02/index.html
Normal file
@@ -0,0 +1,179 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<head><meta name="generator" content="Hexo 3.9.0">
|
||||
<!-- Title -->
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="applicable-device" content="pc,mobile">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
||||
<meta name="author" content="flypython">
|
||||
<meta name="designer" content="flypython">
|
||||
<meta name="keywords" content="潘石屹:我们为什么要学习Python语言?,FlyPython - 专业的Python学习社区,flypython, 飞蟒,飞蟒Python,Python入门,Python自动化,Python日报">
|
||||
<meta property="og:title" content="潘石屹:我们为什么要学习Python语言? | FlyPython - 专业的Python学习社区">
|
||||
<meta property="og:site_name" content="http://www.flypython.com">
|
||||
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:url" content="http://www.flypython.com/article/python-tutorial-02/">
|
||||
<meta property="og:image" content="http://www.flypython.com/images/tutorial2.png">
|
||||
<meta property="og:description" content="潘石屹:我们为什么要学习Python语言?--Python入门教程">
|
||||
<meta name="description" content="潘石屹:我们为什么要学习Python语言?--Python入门教程">
|
||||
|
||||
<meta name="rating" content="general">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="format-detection" content="telephone=yes">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="robots" content="index, follow">
|
||||
<link rel="icon" href="/images/favicon.ico">
|
||||
<title>潘石屹:我们为什么要学习Python语言? | FlyPython - 专业的Python学习社区</title>
|
||||
<link rel="stylesheet" href="/css/f25.css">
|
||||
<link rel="stylesheet" href="/css/highlight.css">
|
||||
|
||||
<link rel="stylesheet" href="/css/gitalk.css">
|
||||
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-147288599-1');
|
||||
</script>
|
||||
|
||||
</head>
|
||||
</head>
|
||||
<body>
|
||||
<header class="wrapper header-wrapper">
|
||||
<div class="container header-nav-wrapper">
|
||||
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
|
||||
<nav class="nav-wrapper">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
<span class="btn-menu" id="J_header_menu">
|
||||
<div class="inner">
|
||||
<span class="line line-01"></span>
|
||||
<span class="line line-02"></span>
|
||||
<span class="line line-03"></span>
|
||||
</div>
|
||||
</span>
|
||||
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
|
||||
<nav class="wrapper mb-nav-container">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<section class="body-wrapper">
|
||||
<section class="wrapper post-banner">
|
||||
<div class="container post-banner-container">
|
||||
<h2 class="wrapper title">潘石屹:我们为什么要学习Python语言?</h2>
|
||||
<div class="wrapper tips">
|
||||
<span>Author:</span><span>flypython</span> | <span>Date: </span><span>2019-02-02</span> | <span>Category:</span><span><a href="/fly/Python入门/" title="Python入门">Python入门</a></span>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="wrapper main-wrapper">
|
||||
<article class="sub-container post-content">
|
||||
<blockquote>
|
||||
<p>11 月 15 日,SOHO 中国董事长潘石屹在微博上宣布,开始学习一门新的语言 Python,这也是今天给自己人生的礼物。</p>
|
||||
</blockquote>
|
||||
<p><img src="https://raw.githubusercontent.com/jcjview/jcjview.github.io/master/img/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20191115152124.jpg" alt></p>
|
||||
<p>什么鬼?房地产大佬要学python?</p>
|
||||
<p><img src="https://raw.githubusercontent.com/jcjview/jcjview.github.io/master/img/pys.jpg" alt></p>
|
||||
<p>潘石屹,一位成功的房地产开发商老板,第一专业是石油方面的,63年出生,年龄都超过了55岁,这些描述怎么着都和编程沾不上边啊。然而,最近他非常高调地表示,要学习一款编程语言。<br>虽然我不同意他的有些观点,不过他的跨界,不给自己设限的态度是还是值得学习的。<br>大佬都忙着学编程,这让我们35岁左右的专业程序员们非常惭愧啊(难道非得财务自由以后才能学python么)。</p>
|
||||
<p><img src="http://jcjview.github.io/img/flypythonflypython001.jpg" alt></p>
|
||||
<p>潘石屹学python肯定不是为了转行找工作,肯定也不是为了爬取全网美女图片,他在微博里详细阐述了我们为什么要学习Python语言。</p>
|
||||
<p><img src="https://raw.githubusercontent.com/jcjview/jcjview.github.io/master/img/%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20191115152906.png" alt></p>
|
||||
<p>我们为什么要学习python——使用范围广<br>01.数据分析</p>
|
||||
<p>对于数据科学和机器学习,Python是首选编程语言。python有众多数据分析工具,知名数据分析比赛网站kaggle,90%以上的竞赛代码都是用python写成。大数据平台如hadoop、spark、flink、beam,python有完整的支持api可调用。</p>
|
||||
<p>02.网站开发</p>
|
||||
<p>对于网站开发,Python的生态环境也可以支撑起重量级的产品。国外的Youtube,Instagram,Pinterest,Reddit,Dropbox,Disqus, Quora等知名应用一开始都是基于Python构建,国内的豆瓣,知乎,果壳,饿了么,等初期在也是Python应用的典型。</p>
|
||||
<p>03.爬虫</p>
|
||||
<p>对于爬虫,则想不到比python更方便、更通用的的语言了。Python极其丰富的生态,诸如Request、Beautiful Soup、Scrapy、PySpider等第三方库,加上简洁易上手的语法,分分钟就能让你写出一个爬虫来。</p>
|
||||
<p>此外,还有机器学习、人工智能、科学计算、IT运维等领域,Python都是极其方便顺手的工具,更重要的是,永远开源,免费。</p>
|
||||
<p>Python的就业前景<br>在it行业飞速发展的今天,在数据成为it命脉的时代,python的重要意义越来越不言自明。学习python,不仅仅是一门可以调用数据结构和算法的语言,在学会python的同时,可以同时学会爬取互联网海量资源,学会自动化分析互联网海量数据,学会制作展示宣传的网站,学会使用人工智能预测和改变世界。学习一门语言,得到多种技能,以及大数据的思维方式,何乐而不为呢。</p>
|
||||
<p>Python有多火?大多数IT研发岗位,都需要Python程序员;甚至许多非研发岗位,纷纷在JD中给出精通Python技能者优先的字样。</p>
|
||||
<p>Python的学习曲线<br>对于爱好者来说, python上手非常容易,学习曲线非常平滑。基本的例子,几行代码都能完成。python代码环境安装几乎是傻瓜式的,不像java要考虑众多库的配置和解决冲突。如果有编程的基础甚至只需要几小时就能上手,即使没有基础的小白,通过努力,7-10天,每天1小时,也可以快速掌握基本编程技巧。</p>
|
||||
<p>Python的学习资料</p>
|
||||
<p>Python官网 </p>
|
||||
<p>Python.org</p>
|
||||
<p>廖雪峰的Python教程 </p>
|
||||
<p><a href="https://www.liaoxuefeng.com/" target="_blank" rel="noopener">https://www.liaoxuefeng.com/</a></p>
|
||||
<p>简明的python教程 </p>
|
||||
<p><a href="http://www.kuqin.com/abyteofpython_cn/" target="_blank" rel="noopener">http://www.kuqin.com/abyteofpython_cn/</a></p>
|
||||
<p>重点推荐书籍:</p>
|
||||
<p>《Python 基础教程》</p>
|
||||
<p>知乎评价:</p>
|
||||
<p>其他入门书籍:</p>
|
||||
<p>Head First Python</p>
|
||||
<p>Dive Into Python</p>
|
||||
<p>Python 核心编程</p>
|
||||
<p>深入理解 Python</p>
|
||||
<p>Python 标准库</p>
|
||||
<p>Python 编程指南</p>
|
||||
<p>(我们搜集了一些网上的电子书版本,关注公众号,回复”python”获取)</p>
|
||||
<p>当然,英文著作虽然经典,但涉及领域众多,概念多,信息量大,不适合速成。网上的资料丰富,但也鱼龙混杂。</p>
|
||||
<p>以 “Python入门” 为关键字搜索出的结果成千上万。不少小白选手难免会东一榔头西一棒槌,最终看了很多文章,却仍没跨过新手那道门槛。</p>
|
||||
<p>我们这里有一个python的入门课程,帮你把需要掌握的python基础知识都融汇贯通在小篇幅中。我们提供了很多有趣的实践项目,并且可以进群,互助学习,遇到困难有人来解答。</p>
|
||||
<p>加群请加个人微信号flypython。</p>
|
||||
<p>人生苦短,我用python早下班。如果觉得不错,对你工作中有帮助,动动手指分享给更多人哦。</p>
|
||||
|
||||
</article>
|
||||
<div class="sub-container gitalk-wrapper" id="gitalk-container"></div>
|
||||
</section>
|
||||
|
||||
<div class="tips-top-wrapper">
|
||||
<span class="tip-top-container" onclick="scrollToWindowTop()">
|
||||
<span class="l-bar"></span>
|
||||
<span class="r-bar"></span>
|
||||
</span>
|
||||
</div>
|
||||
<footer class="wrapper footer-wrapper">
|
||||
<div class="container"><span class="copyright">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
<script src="/js/gitalk.min.js"></script>
|
||||
|
||||
<script>
|
||||
var gitalkAdmin = 'xxg1413'.split(',');
|
||||
var gitalk = new Gitalk({
|
||||
clientID: 'd0e566bfc45c0b852c6c',
|
||||
clientSecret: '6b69b3a841c85a6223e5a904c47f5e2d84322980',
|
||||
repo: 'gitalk',
|
||||
owner: 'flypythoncom',
|
||||
admin: gitalkAdmin,
|
||||
id: location.pathname.length > 50 ? location.pathname.substr(0,50) : location.pathname, // Ensure uniqueness and length less than 50
|
||||
distractionFreeMode: false // Facebook-like distraction free mode
|
||||
});
|
||||
gitalk.render('gitalk-container');
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
249
article/python-tutorial-03/index.html
Normal file
@@ -0,0 +1,249 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<head><meta name="generator" content="Hexo 3.9.0">
|
||||
<!-- Title -->
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="applicable-device" content="pc,mobile">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
||||
<meta name="author" content="flypython">
|
||||
<meta name="designer" content="flypython">
|
||||
<meta name="keywords" content="Python正则15分钟入门,FlyPython - 专业的Python学习社区,flypython, 飞蟒,飞蟒Python,Python入门,Python自动化,Python日报">
|
||||
<meta property="og:title" content="Python正则15分钟入门 | FlyPython - 专业的Python学习社区">
|
||||
<meta property="og:site_name" content="http://www.flypython.com">
|
||||
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:url" content="http://www.flypython.com/article/python-tutorial-03/">
|
||||
<meta property="og:image" content="http://www.flypython.com/images/tutorial3.png">
|
||||
<meta property="og:description" content="Python正则15分钟入门--Python入门教程">
|
||||
<meta name="description" content="Python正则15分钟入门--Python入门教程">
|
||||
|
||||
<meta name="rating" content="general">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="format-detection" content="telephone=yes">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="robots" content="index, follow">
|
||||
<link rel="icon" href="/images/favicon.ico">
|
||||
<title>Python正则15分钟入门 | FlyPython - 专业的Python学习社区</title>
|
||||
<link rel="stylesheet" href="/css/f25.css">
|
||||
<link rel="stylesheet" href="/css/highlight.css">
|
||||
|
||||
<link rel="stylesheet" href="/css/gitalk.css">
|
||||
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-147288599-1');
|
||||
</script>
|
||||
|
||||
</head>
|
||||
</head>
|
||||
<body>
|
||||
<header class="wrapper header-wrapper">
|
||||
<div class="container header-nav-wrapper">
|
||||
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
|
||||
<nav class="nav-wrapper">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
<span class="btn-menu" id="J_header_menu">
|
||||
<div class="inner">
|
||||
<span class="line line-01"></span>
|
||||
<span class="line line-02"></span>
|
||||
<span class="line line-03"></span>
|
||||
</div>
|
||||
</span>
|
||||
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
|
||||
<nav class="wrapper mb-nav-container">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<section class="body-wrapper">
|
||||
<section class="wrapper post-banner">
|
||||
<div class="container post-banner-container">
|
||||
<h2 class="wrapper title">Python正则15分钟入门</h2>
|
||||
<div class="wrapper tips">
|
||||
<span>Author:</span><span>flypython</span> | <span>Date: </span><span>2019-02-03</span> | <span>Category:</span><span><a href="/fly/Python入门/" title="Python入门">Python入门</a></span>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="wrapper main-wrapper">
|
||||
<article class="sub-container post-content">
|
||||
<p>flypython群里有同学问我,如何从大量格式不确定的word文档抽取姓名、电话号码、邮箱等信息存入excel表格。通过之前我们的文章,他已经学会读取和写入文档和表格,但就是无法处理格式不确定的文档。<strong>这里介绍的正则方法,可以帮助他解决这个问题。</strong></p>
|
||||
<h2 id="目标"><a href="#目标" class="headerlink" title="目标"></a>目标</h2><p>15分钟内让你真正明白正则表达式是什么,并且让你可以在自己的python程序里正确使用它。</p>
|
||||
<p>你将学会:</p>
|
||||
<ol>
|
||||
<li>极简python使用正则的方法</li>
|
||||
<li>如果利用python高效的匹配字符串</li>
|
||||
<li>如何利用python正则进行文本判断、过滤、信息提取</li>
|
||||
</ol>
|
||||
<h2 id="0-极简正则入门"><a href="#0-极简正则入门" class="headerlink" title="0.极简正则入门"></a>0.极简正则入门</h2><p>假设程序从word或者excel读取了一串字符串,字符串中有一部分是电话号码,现在需要完整提取这个电话号码。</p>
|
||||
<figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> re</span><br><span class="line">reg=re.compile(<span class="string">"[0-9]+"</span>)</span><br><span class="line">a=reg.findall(<span class="string">"我的电话是3555487"</span>)</span><br><span class="line">print(a)</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>输出:</p>
|
||||
<p><img src="https://raw.githubusercontent.com/jcjview/jcjview.github.io/master/img/20191016101032.png" alt></p>
|
||||
<p>解释:<br><code>"[0-9]+"</code>是正则表达式,意思是匹配0-9的数字,<code>"+"</code><br>表示可以匹配1次-多次,<code>reg.findall</code>表示从后面的字符串里找到所有的匹配值。</p>
|
||||
<h2 id="1-字符集"><a href="#1-字符集" class="headerlink" title="1.字符集"></a>1.字符集</h2><p>字符集,又叫元字符,就是用一些特殊符号表示特定种类的字符或位置。</p>
|
||||
<h4 id="匹配字符"><a href="#匹配字符" class="headerlink" title="匹配字符"></a>匹配字符</h4><table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th align="center">代码</th>
|
||||
<th>说明</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody><tr>
|
||||
<td align="center"><code>.</code></td>
|
||||
<td>匹配除换行符以外的任意一个字符</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><code>\d</code></td>
|
||||
<td>匹配数字</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><code>\w</code></td>
|
||||
<td>匹配字母或数字或下划线或汉字</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><code>\s</code></td>
|
||||
<td>匹配任意的空白符</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><code>^</code></td>
|
||||
<td>匹配字符串的开始</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><code>$</code></td>
|
||||
<td>匹配字符串的结束</td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
<p>举例</p>
|
||||
<figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> re</span><br><span class="line">reg=re.compile(<span class="string">"我."</span>)</span><br><span class="line">a=reg.findall(<span class="string">"我的电话是3555487"</span>)</span><br><span class="line">print(a)</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>输出:<br><img src="http://jcjview.github.io/img/re201910161010321.png" alt></p>
|
||||
<h4 id="重复匹配"><a href="#重复匹配" class="headerlink" title="重复匹配"></a>重复匹配</h4><table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th align="center">代码</th>
|
||||
<th>说明</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody><tr>
|
||||
<td align="center"><code>*</code></td>
|
||||
<td>重复0次-无数次</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><code>+</code></td>
|
||||
<td>重复1次-无数次</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><code>?</code></td>
|
||||
<td>重复0次-1次</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><code>{m}</code></td>
|
||||
<td>重复m次</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><code>{m,n}</code></td>
|
||||
<td>重复m-n次</td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
<p>举例</p>
|
||||
<figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> re</span><br><span class="line">reg=re.compile(<span class="string">"5+"</span>)</span><br><span class="line">a=reg.findall(<span class="string">"我的电话是3555487"</span>)</span><br><span class="line">print(a)</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>输出:<br><img src="https://raw.githubusercontent.com/jcjview/jcjview.github.io/master/img/re_20191016101824.png" alt></p>
|
||||
<h4 id="贪婪与懒惰"><a href="#贪婪与懒惰" class="headerlink" title="贪婪与懒惰"></a>贪婪与懒惰</h4><p>贪婪:匹配尽可能长的字符串<br>懒惰:匹配尽可能短的字符串<br>懒惰模式的启用只需在重复元字符之后加?既可。</p>
|
||||
<ul>
|
||||
<li><code>*?</code> 重复任意次,但尽可能少重复</li>
|
||||
<li><code>+?</code> 重复1次或更多次,但尽可能少重复</li>
|
||||
<li><code>??</code> 重复0次或1次,但尽可能少重复</li>
|
||||
<li><code>{n,m}?</code> 重复n到m次,但尽可能少重复</li>
|
||||
<li><code>{n,}?</code> 重复n次以上,但尽可能少重复</li>
|
||||
</ul>
|
||||
<p>举例</p>
|
||||
<figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> re</span><br><span class="line">reg=re.compile(<span class="string">"5+?"</span>)</span><br><span class="line">a=reg.findall(<span class="string">"我的电话是3555487"</span>)</span><br><span class="line">print(a)</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>输出<br><img src="https://raw.githubusercontent.com/jcjview/jcjview.github.io/master/img//re_20191016101824111.png" alt></p>
|
||||
<p>注意:<br>如果想匹配元字符本身或者正则中的一些特殊字符,使用<code>\\</code>转义。</p>
|
||||
<p>这里介绍的正则内容是最基础的,想要了解更详细的正则表达式语法,请参考:</p>
|
||||
<h2 id="2-利用正则判断"><a href="#2-利用正则判断" class="headerlink" title="2.利用正则判断"></a>2.利用正则判断</h2><h4 id="判断"><a href="#判断" class="headerlink" title="判断"></a>判断</h4><p>有时候我们想利用正则表达式对用户输入进行判断,比如判断用户输入的身份证号是否符合规则,那么可以这样写:</p>
|
||||
<figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> re</span><br><span class="line">r=<span class="string">r'^([1-9]\d{5}[12]\d{3}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])\d{3}[0-9xX])$'</span></span><br><span class="line"></span><br><span class="line">s1 = <span class="string">'110102200101014779'</span></span><br><span class="line"></span><br><span class="line"><span class="comment">#判断s1字符串是符合正则r</span></span><br><span class="line">an = re.search(r, s1)</span><br><span class="line"><span class="keyword">if</span> an:</span><br><span class="line"> <span class="keyword">print</span> (<span class="string">'yes'</span>)</span><br><span class="line"><span class="keyword">else</span>:</span><br><span class="line"> <span class="keyword">print</span> (<span class="string">'no'</span>)</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>输入结果<br><img src="https://raw.githubusercontent.com/jcjview/jcjview.github.io/master/img/re_20191016104208.png" alt></p>
|
||||
<p>说明:<code>^</code>字符表示必须匹配字符串开头;<code>$</code>表示必须匹配字符串结尾。</p>
|
||||
<h4 id="过滤"><a href="#过滤" class="headerlink" title="过滤"></a>过滤</h4><p>假设,输出一串文本,只想保留汉字,去除特殊符号。代码如下:</p>
|
||||
<figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> re</span><br><span class="line">special_character_removal = re.compile(<span class="string">r'[,。、【 】“”:;()《》‘’{}?!⑦%>℃.^-——=&#@¥『』]'</span>, re.IGNORECASE)</span><br><span class="line">line=<span class="string">"贾蓉看了说:“高明的很。还要请教先生,这病与『性』命终久有妨无妨?”"</span></span><br><span class="line">l = special_character_removal.sub(<span class="string">''</span>, line)</span><br><span class="line">print(l)</span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>输入结果:<br><img src="https://raw.githubusercontent.com/jcjview/jcjview.github.io/master/img/re_20191016104753.png" alt></p>
|
||||
<h4 id="查找位置"><a href="#查找位置" class="headerlink" title="查找位置"></a>查找位置</h4><p>查找某个文本在字符串中的位置,一般用于信息提取。</p>
|
||||
<figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">import</span> re</span><br><span class="line">p = re.compile(<span class="string">"\d+"</span>)</span><br><span class="line">content=<span class="string">"2019年9月9月9日"</span></span><br><span class="line">result2 = p.finditer(content)</span><br><span class="line"></span><br><span class="line"><span class="keyword">for</span> m <span class="keyword">in</span> result2:</span><br><span class="line"> print(<span class="string">"str"</span>,m.group()) <span class="comment">##字符串</span></span><br><span class="line"> print(<span class="string">"start: "</span>,m.start(),<span class="string">" end: "</span>,m.end()) <span class="comment">##字符串位置</span></span><br></pre></td></tr></table></figure>
|
||||
|
||||
<p>输出结果</p>
|
||||
<p><img src="https://raw.githubusercontent.com/jcjview/jcjview.github.io/master/img/re_20191016110227.png" alt></p>
|
||||
<p><em>人生苦短,我用python早下班。如果觉得不错,对你工作中有帮助,请长按下面二维码关注我们。(回复训练营加群,一起探讨python问题)</em></p>
|
||||
<p> <img src="https://flypython.com/images/wechat.png" alt="flypython微信公众号"></p>
|
||||
|
||||
</article>
|
||||
<div class="sub-container gitalk-wrapper" id="gitalk-container"></div>
|
||||
</section>
|
||||
|
||||
<div class="tips-top-wrapper">
|
||||
<span class="tip-top-container" onclick="scrollToWindowTop()">
|
||||
<span class="l-bar"></span>
|
||||
<span class="r-bar"></span>
|
||||
</span>
|
||||
</div>
|
||||
<footer class="wrapper footer-wrapper">
|
||||
<div class="container"><span class="copyright">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
<script src="/js/gitalk.min.js"></script>
|
||||
|
||||
<script>
|
||||
var gitalkAdmin = 'xxg1413'.split(',');
|
||||
var gitalk = new Gitalk({
|
||||
clientID: 'd0e566bfc45c0b852c6c',
|
||||
clientSecret: '6b69b3a841c85a6223e5a904c47f5e2d84322980',
|
||||
repo: 'gitalk',
|
||||
owner: 'flypythoncom',
|
||||
admin: gitalkAdmin,
|
||||
id: location.pathname.length > 50 ? location.pathname.substr(0,50) : location.pathname, // Ensure uniqueness and length less than 50
|
||||
distractionFreeMode: false // Facebook-like distraction free mode
|
||||
});
|
||||
gitalk.render('gitalk-container');
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
503
css/f25.css
Normal file
@@ -0,0 +1,503 @@
|
||||
body{
|
||||
margin: 0;
|
||||
font-family: "PingFang SC","Lantinghei SC","Microsoft Yahei","Hiragino Sans GB","Microsoft Sans Serif","WenQuanYi Micro Hei",sans;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-ms-text-size-adjust: 100%;
|
||||
text-rendering: optimizelegibility;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
overflow: scroll;
|
||||
}
|
||||
html , body{
|
||||
height: 100%;
|
||||
}
|
||||
.header-wrapper{
|
||||
height: 64px;
|
||||
width: 100%;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 999;
|
||||
background: #fff;
|
||||
box-shadow: 0px 1px 2px #999;
|
||||
}
|
||||
.wrapper{
|
||||
width: 100%;
|
||||
}
|
||||
.wrapper::before,
|
||||
.wrapper::after{
|
||||
clear: both;
|
||||
display: table;
|
||||
content: "";
|
||||
}
|
||||
.container{
|
||||
width: 1200px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.sub-container{
|
||||
width: 960px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.container::before,
|
||||
.container::after,
|
||||
.sub-container::before,
|
||||
.sub-container::after{
|
||||
clear: both;
|
||||
display: table;
|
||||
content: "";
|
||||
}
|
||||
.header-nav-wrapper{
|
||||
height: 100%;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.logo{
|
||||
float: left;
|
||||
height: 100%;
|
||||
width: 200px;
|
||||
background: #fff;
|
||||
}
|
||||
.logo a{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
color: #03339e;
|
||||
text-decoration: none;
|
||||
}
|
||||
.logo a:hover,
|
||||
.logo a:visited,
|
||||
.logo a:acive{
|
||||
color: #03339e;
|
||||
text-decoration: none;
|
||||
}
|
||||
.logo .title{
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
line-height: 64px;
|
||||
user-select: none;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
font-size: 24px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.nav-wrapper{
|
||||
float: right;
|
||||
}
|
||||
.nav-wrapper a{
|
||||
display: block;
|
||||
float: left;
|
||||
height: 100%;
|
||||
font-size: 18px;
|
||||
line-height: 20px;
|
||||
padding: 22px;
|
||||
color: #000;
|
||||
cursor: pointer;
|
||||
text-decoration: none;
|
||||
transition: all .4s;
|
||||
}
|
||||
.nav-wrapper a:hover{
|
||||
color: #fff;
|
||||
background-color: #6C62C7;
|
||||
text-decoration: none;
|
||||
}
|
||||
.nav-wrapper a:active,
|
||||
.nav-wrapper a:visited{
|
||||
text-decoration: none;
|
||||
}
|
||||
.body-wrapper{
|
||||
min-height: 100%;
|
||||
box-sizing: border-box;
|
||||
padding: 64px 0 60px 0;
|
||||
position: relative;
|
||||
}
|
||||
.banner-wrapper{
|
||||
height: 250px;
|
||||
background: url(/images/bg_sm.png) repeat;
|
||||
background-color: #000;
|
||||
}
|
||||
.banner-container{
|
||||
height: 100%;
|
||||
background: url(/images/bg.png) no-repeat;
|
||||
background-position: center;
|
||||
background-size: auto 100%;
|
||||
}
|
||||
.menu-wrapper{
|
||||
margin-top: 20px;
|
||||
}
|
||||
.menu-wrapper a{
|
||||
text-decoration: none;
|
||||
color: #333;
|
||||
font-size: 16px;
|
||||
box-sizing: border-box;
|
||||
font-weight: 600;
|
||||
padding: 10px 20px;
|
||||
float: left;
|
||||
transition: all .4s;
|
||||
margin-right: 10px;
|
||||
|
||||
}
|
||||
.menu-wrapper a:lash-child{
|
||||
margin-right: 0;
|
||||
}
|
||||
.menu-wrapper a.active,
|
||||
.menu-wrapper a:hover{
|
||||
text-decoration: none;
|
||||
color: #fff;
|
||||
background-color: #6C62C7;
|
||||
}
|
||||
.list-container{
|
||||
padding: 0;
|
||||
}
|
||||
.post-i-wrapper{
|
||||
list-style: none;
|
||||
width: 280px;
|
||||
height: 240px;
|
||||
float: left;
|
||||
margin: 26px 26px 26px 0;
|
||||
background-color: #fff;
|
||||
cursor: pointer;
|
||||
box-shadow: 0px 2px 6px #ccc;
|
||||
transition: all .2s;
|
||||
}
|
||||
.post-i-wrapper .post-i-link{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
text-decoration: none;
|
||||
}
|
||||
.post-i-wrapper:hover{
|
||||
box-shadow: 0px 0px 10px #000;
|
||||
}
|
||||
.post-i-wrapper .cover{
|
||||
width: 100%;
|
||||
height: 113px;
|
||||
overflow: hidden;
|
||||
}
|
||||
.post-i-wrapper .cover img{
|
||||
width: 100%;
|
||||
min-height: 100%;
|
||||
}
|
||||
.post-i-wrapper .title{
|
||||
margin: 0;
|
||||
font-size: 18px;
|
||||
font-weight: 400;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
box-sizing: border-box;
|
||||
padding: 20px 10px 10px 10px;
|
||||
color: #000;
|
||||
}
|
||||
.post-i-wrapper .subtitle{
|
||||
line-height: 22px;
|
||||
text-indent: 28px;
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
max-height: 44px;
|
||||
overflow: hidden;
|
||||
box-sizing: border-box;
|
||||
padding: 0 10px;
|
||||
color: #666;
|
||||
margin: 0;
|
||||
}
|
||||
.post-i-wrapper .time{
|
||||
color: #999;
|
||||
font-size: 12px;
|
||||
padding: 10px;
|
||||
display: block;
|
||||
box-sizing: border-box;
|
||||
text-align: left;
|
||||
}
|
||||
.post-banner{
|
||||
height: 400px;
|
||||
background-color: #6C62C7;
|
||||
}
|
||||
.post-banner-container{
|
||||
height: 100%;
|
||||
background: url(/images/bg_post.png) no-repeat;
|
||||
background-position: center;
|
||||
background-size: 100% auto;
|
||||
}
|
||||
.post-banner-container .title{
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
font-size: 28px;
|
||||
line-height: 40px;
|
||||
margin: 0;
|
||||
margin-top: 160px;
|
||||
font-weight: 500;
|
||||
color: #fff;
|
||||
}
|
||||
.post-banner-container .tips {
|
||||
text-align: center;
|
||||
color: #D8D8F6;
|
||||
}
|
||||
.post-banner-container .tips a{
|
||||
color: #D8D8F6;
|
||||
text-decoration: none;
|
||||
transition: all .4s;
|
||||
}
|
||||
.post-banner-container .tips a:hover{
|
||||
color: #3A2BB4;
|
||||
text-decoration: underline;
|
||||
}
|
||||
.post-content {
|
||||
box-sizing: border-box;
|
||||
padding: 20px 10px;
|
||||
line-height: 1.8;
|
||||
}
|
||||
.post-content ul,
|
||||
.post-content ol{
|
||||
box-sizing: border-box;
|
||||
padding: 20px 10px;
|
||||
margin: 0;
|
||||
}
|
||||
.post-content table{
|
||||
border-spacing: 0;
|
||||
border-collapse: collapse;
|
||||
-ms-word-break: break-all;
|
||||
word-break: break-all;
|
||||
}
|
||||
.post-content table th{
|
||||
background: #eee;
|
||||
padding: 4px;
|
||||
border: 1px solid #999;
|
||||
}
|
||||
.post-content table td{
|
||||
border: 1px solid #999;
|
||||
padding: 4px;
|
||||
}
|
||||
.post-content li{
|
||||
font-weight: 500;
|
||||
line-height: 2;
|
||||
color: #333;
|
||||
-ms-word-break: break-all;
|
||||
word-break: break-all;
|
||||
list-style-position: inside;
|
||||
}
|
||||
.post-content p{
|
||||
-ms-word-break: break-all;
|
||||
word-break: break-all;
|
||||
}
|
||||
.gitalk-wrapper{
|
||||
padding: 20px 10px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.footer-wrapper{
|
||||
width: 100%;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
height: 60px;
|
||||
text-align: center;
|
||||
background: #efefef;
|
||||
box-sizing: border-box;
|
||||
padding: 20px 0;
|
||||
box-shadow: 0px 0px 2px #bbb;
|
||||
}
|
||||
.copyright{
|
||||
font-size: 14px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.btn-menu {
|
||||
display: none;
|
||||
float: right;
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
}
|
||||
.btn-menu .inner {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
}
|
||||
.btn-menu .inner .line {
|
||||
top: 30px;
|
||||
left: 22px;
|
||||
position: absolute;
|
||||
width: 20px;
|
||||
height: 3px;
|
||||
-webkit-transition: all .5s;
|
||||
transition: all .5s;
|
||||
background: #000;
|
||||
}
|
||||
.btn-menu .inner .line-01 {
|
||||
margin-top: -7px;
|
||||
}
|
||||
.btn-menu .inner .line-03 {
|
||||
margin-top: 7px;
|
||||
}
|
||||
.btn-close .line-01 {
|
||||
-webkit-transform: rotate(45deg) translate3d(5px, 5px, 0);
|
||||
transform: rotate(45deg) translate3d(5px, 5px, 0);
|
||||
}
|
||||
.btn-close .line-03 {
|
||||
-webkit-transform: rotate(-45deg) translate3d(5px, -5px, 0);
|
||||
transform: rotate(-45deg) translate3d(5px, -5px, 0);
|
||||
}
|
||||
.btn-close .line-02 {
|
||||
-webkit-transform: translate3d(50px, 0, 0);
|
||||
transform: translate3d(50px, 0, 0);
|
||||
}
|
||||
.mb-nav-wrapper{
|
||||
position: absolute;
|
||||
top: 64px;
|
||||
z-index: 99;
|
||||
background-color: #fff;
|
||||
box-shadow: 0px 1px 2px #999;
|
||||
display: none;
|
||||
}
|
||||
.mb-nav-wrapper.show{
|
||||
display: block;
|
||||
}
|
||||
.mb-nav-container a{
|
||||
display: block;
|
||||
box-sizing: border-box;
|
||||
padding: 10px;
|
||||
line-height: 22px;
|
||||
font-size: 14px;
|
||||
text-decoration: none;
|
||||
color: #000;
|
||||
user-select: none;
|
||||
}
|
||||
.tips-top-wrapper{
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
background: #d4d4d4;
|
||||
margin-bottom: .5rem;
|
||||
cursor: pointer;
|
||||
transition: all .4s;
|
||||
border-radius: 2px;
|
||||
box-shadow: 2px 2px 2px #000;
|
||||
position: fixed;
|
||||
bottom: 20px;
|
||||
right: 20px;
|
||||
z-index: 99;
|
||||
}
|
||||
.tips-top-wrapper:hover{
|
||||
background: #000;
|
||||
}
|
||||
.tip-top-container{
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
text-align: center;
|
||||
line-height: 48px;
|
||||
position: relative;
|
||||
}
|
||||
.tip-top-container span{
|
||||
width: 2px;
|
||||
height: 16px;
|
||||
background: #fff;
|
||||
display: block;
|
||||
position: absolute;
|
||||
}
|
||||
.tip-top-container .l-bar{
|
||||
transform: rotateZ(45deg);
|
||||
-ms-transform: rotateZ(45deg);
|
||||
-webkit-transform: rotateZ(45deg);
|
||||
left: 14px;
|
||||
top: 12px;
|
||||
}
|
||||
.tip-top-container .r-bar{
|
||||
transform: rotateZ(-45deg);
|
||||
-ms-transform: rotateZ(-45deg);
|
||||
-webkit-transform: rotateZ(-45deg);
|
||||
left: 25px;
|
||||
top: 12px;
|
||||
}
|
||||
/****************************/
|
||||
|
||||
@media screen and (min-width: 901px) and (max-width: 1400px){
|
||||
.container,
|
||||
.sub-container{
|
||||
width: 892px;
|
||||
}
|
||||
.post-i-wrapper{
|
||||
margin: 26px 26px 26px 0;
|
||||
}
|
||||
.post-i-wrapper:nth-child(3n){
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
@media screen and (min-width: 769px) and (max-width: 900px){
|
||||
.container,
|
||||
.sub-container{
|
||||
width: 586px;
|
||||
}
|
||||
.post-i-wrapper{
|
||||
margin: 26px 26px 26px 0;
|
||||
}
|
||||
.post-i-wrapper:nth-child(2n){
|
||||
margin-right: 0;
|
||||
}
|
||||
.nav-wrapper a{
|
||||
padding: 22px 12px;
|
||||
}
|
||||
.menu-wrapper a{
|
||||
padding: 10px 8px;
|
||||
}
|
||||
.post-banner-container .title{
|
||||
font-size: 24px;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 768px){
|
||||
.container,
|
||||
.sub-container{
|
||||
width: 100%;
|
||||
}
|
||||
.list-container{
|
||||
box-sizing: border-box;
|
||||
padding: 10px 2px;
|
||||
}
|
||||
.post-i-wrapper{
|
||||
height: 320px;
|
||||
width: 100%;
|
||||
margin: 26px 0;
|
||||
}
|
||||
.post-i-wrapper .cover{
|
||||
height: 193px;
|
||||
}
|
||||
.logo .title{
|
||||
padding: 0 10px;
|
||||
}
|
||||
.nav-wrapper{
|
||||
display: none;
|
||||
}
|
||||
.logo{
|
||||
width: 140px;
|
||||
}
|
||||
.btn-menu{
|
||||
display: block;
|
||||
}
|
||||
.post-banner{
|
||||
height: 200px;
|
||||
}
|
||||
.post-banner-container .title{
|
||||
margin-top: 80px;
|
||||
font-size: 18px;
|
||||
line-height: 24px;
|
||||
}
|
||||
.post-banner-container .tips{
|
||||
font-size: 12px;
|
||||
}
|
||||
.post-content{
|
||||
font-size: 14px;
|
||||
}
|
||||
.menu-wrapper{
|
||||
box-sizing: border-box;
|
||||
padding: 0 10px;
|
||||
}
|
||||
.menu-wrapper a{
|
||||
padding: 8px;
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and ( min-width:1401px){
|
||||
.post-i-wrapper{
|
||||
margin: 26px 26px 26px 0;
|
||||
}
|
||||
.post-i-wrapper:nth-child(4n){
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
1211
css/gitalk.css
Normal file
446
css/highlight.css
Normal file
@@ -0,0 +1,446 @@
|
||||
html {
|
||||
-ms-text-size-adjust: 100%;
|
||||
}
|
||||
|
||||
article, aside, footer, header, nav, section {
|
||||
display: block;
|
||||
}
|
||||
|
||||
figcaption, figure, main {
|
||||
display: block;
|
||||
}
|
||||
|
||||
figure {
|
||||
margin: 1em 40px;
|
||||
}
|
||||
|
||||
hr {
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
a {
|
||||
background-color: transparent;
|
||||
-webkit-text-decoration-skip: object;
|
||||
}
|
||||
|
||||
mark {
|
||||
background-color: #ff0;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
audio, video {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
img {
|
||||
border-style: none;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
svg:not(:root) {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
button, input {
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
button, select {
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
legend {
|
||||
box-sizing: border-box;
|
||||
color: inherit;
|
||||
display: table;
|
||||
max-width: 100%;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
progress {
|
||||
display: inline-block;
|
||||
}
|
||||
blockquote{
|
||||
background: #ecf0f1;
|
||||
margin: 0;
|
||||
padding: 2px 10px;
|
||||
font-style: italic;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
textarea {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
[type="checkbox"], [type="radio"] {
|
||||
box-sizing: border-box;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
details, menu {
|
||||
display: list-item;
|
||||
}
|
||||
|
||||
canvas {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
[type="search"]::-webkit-search-cancel-button, [type="search"]::-webkit-search-decoration {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
button, input, optgroup, select, textarea {
|
||||
-webkit-appearance: none;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
}
|
||||
|
||||
a {
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
}
|
||||
|
||||
/**
|
||||
* Correct the style in all browsers.
|
||||
*/
|
||||
html {
|
||||
font-family: "Helvetica Neue", Helvetica, STHeiTi, "Microsoft Yahei", sans-serif;
|
||||
line-height: 1.15;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 2em;
|
||||
margin: 0.67em 0;
|
||||
}
|
||||
|
||||
hr {
|
||||
box-sizing: content-box;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
pre {
|
||||
overflow: scroll;
|
||||
font-family: monospace, monospace;
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
a:active, a:hover {
|
||||
outline-width: 0;
|
||||
}
|
||||
|
||||
abbr[title] {
|
||||
border-bottom: none;
|
||||
text-decoration: underline;
|
||||
text-decoration: underline dotted;
|
||||
}
|
||||
|
||||
b, strong {
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
code, kbd, samp {
|
||||
font-family: monospace, monospace;
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
small {
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
sub, sup {
|
||||
font-size: 75%;
|
||||
line-height: 0;
|
||||
position: relative;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
sub {
|
||||
bottom: -0.25em;
|
||||
}
|
||||
|
||||
sup {
|
||||
top: -0.5em;
|
||||
}
|
||||
|
||||
audio:not([controls]) {
|
||||
display: none;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
button, input, optgroup, select, textarea {
|
||||
font-family: sans-serif;
|
||||
font-size: 100%;
|
||||
line-height: 1.15;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
button, html [type="button"], [type="reset"], [type="submit"] {
|
||||
-webkit-appearance: button;
|
||||
}
|
||||
|
||||
button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner {
|
||||
border-style: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
button:-moz-focusring, [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring {
|
||||
outline: 1px dotted ButtonText;
|
||||
}
|
||||
|
||||
fieldset {
|
||||
border: 1px solid #c0c0c0;
|
||||
margin: 0 2px;
|
||||
padding: 0.35em 0.625em 0.75em;
|
||||
}
|
||||
|
||||
legend {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
progress {
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
[type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
[type="search"] {
|
||||
-webkit-appearance: textfield;
|
||||
outline-offset: -2px;
|
||||
}
|
||||
|
||||
::-webkit-file-upload-button {
|
||||
-webkit-appearance: button;
|
||||
font: inherit;
|
||||
}
|
||||
|
||||
details, summary {
|
||||
display: list-item;
|
||||
}
|
||||
|
||||
code,
|
||||
pre {
|
||||
font-size: 0.8em;
|
||||
background-color: #ecf0f1;
|
||||
font-family: 'Roboto Mono', Monaco, courier, monospace;
|
||||
}
|
||||
|
||||
code {
|
||||
padding: 0.1em 0.4em;
|
||||
background-color: #ecf0f1;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
pre .line {
|
||||
min-height: 1em;
|
||||
}
|
||||
|
||||
.highlight {
|
||||
position: relative;
|
||||
margin: 1em 0;
|
||||
border-radius: 2px;
|
||||
line-height: 1.1em;
|
||||
background-color: #ecf0f1;
|
||||
overflow-x: auto;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
}
|
||||
.highlight figcaption {
|
||||
font-size: .9em;
|
||||
padding: .4em;
|
||||
border-bottom: 1px solid #bdc3c7;
|
||||
}
|
||||
.highlight table, .highlight tr, .highlight td {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
.highlight .gutter {
|
||||
display: none;
|
||||
}
|
||||
.highlight .code pre {
|
||||
padding: 1.2em 1.4em;
|
||||
line-height: 1.5em;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.highlight.html .code:after, .highlight.js .code:after, .highlight.bash .code:after, .highlight.css .code:after, .highlight.scss .code:after, .highlight.diff .code:after, .highlight.java .code:after, .highlight.xml .code:after, .highlight.python .code:after, .highlight.json .code:after, .highlight.swift .code:after, .highlight.ruby .code:after, .highlight.perl .code:after, .highlight.php .code:after, .highlight.c .code:after, .highlight.cpp .code:after, .highlight.ts .code:after {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
color: #bdc3c7;
|
||||
text-align: right;
|
||||
font-size: 0.75em;
|
||||
padding: 5px 10px 0;
|
||||
line-height: 15px;
|
||||
height: 15px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.highlight.html .code:after {
|
||||
content: "HTML";
|
||||
}
|
||||
|
||||
.highlight.js .code:after {
|
||||
content: "JS";
|
||||
}
|
||||
|
||||
.highlight.bash .code:after {
|
||||
content: "BASH";
|
||||
}
|
||||
|
||||
.highlight.css .code:after {
|
||||
content: "CSS";
|
||||
}
|
||||
|
||||
.highlight.scss .code:after {
|
||||
content: "SCSS";
|
||||
}
|
||||
|
||||
.highlight.diff .code:after {
|
||||
content: "DIFF";
|
||||
}
|
||||
|
||||
.highlight.java .code:after {
|
||||
content: "JAVA";
|
||||
}
|
||||
|
||||
.highlight.xml .code:after {
|
||||
content: "XML";
|
||||
}
|
||||
|
||||
.highlight.python .code:after {
|
||||
content: "PYTHON";
|
||||
}
|
||||
|
||||
.highlight.json .code:after {
|
||||
content: "JSON";
|
||||
}
|
||||
|
||||
.highlight.swift .code:after {
|
||||
content: "SWIFT";
|
||||
}
|
||||
|
||||
.highlight.ruby .code:after {
|
||||
content: "RUBY";
|
||||
}
|
||||
|
||||
.highlight.perl .code:after {
|
||||
content: "PERL";
|
||||
}
|
||||
|
||||
.highlight.php .code:after {
|
||||
content: "PHP";
|
||||
}
|
||||
|
||||
.highlight.c .code:after {
|
||||
content: "C";
|
||||
}
|
||||
|
||||
.highlight.java .code:after {
|
||||
content: "JAVA";
|
||||
}
|
||||
|
||||
.highlight.cpp .code:after {
|
||||
content: "CPP";
|
||||
}
|
||||
|
||||
.highlight.ts .code:after {
|
||||
content: "TS";
|
||||
}
|
||||
|
||||
.highlight.cpp .code:after {
|
||||
content: 'C++';
|
||||
}
|
||||
|
||||
pre {
|
||||
color: #34495e;
|
||||
}
|
||||
pre .function .keyword,
|
||||
pre .constant {
|
||||
color: #3498db;
|
||||
}
|
||||
pre .keyword,
|
||||
pre .attribute {
|
||||
color: #e96900;
|
||||
}
|
||||
pre .number,
|
||||
pre .literal {
|
||||
color: #8e44ad;
|
||||
}
|
||||
pre .tag,
|
||||
pre .tag .title,
|
||||
pre .change,
|
||||
pre .winutils,
|
||||
pre .flow,
|
||||
pre .lisp .title,
|
||||
pre .clojure .built_in,
|
||||
pre .nginx .title,
|
||||
pre .tex .special {
|
||||
color: #2980b9;
|
||||
}
|
||||
pre .symbol,
|
||||
pre .symbol .string,
|
||||
pre .value,
|
||||
pre .regexp {
|
||||
color: #1abc9c;
|
||||
}
|
||||
pre .title {
|
||||
color: #2ecc71;
|
||||
}
|
||||
pre .tag .value,
|
||||
pre .string,
|
||||
pre .subst,
|
||||
pre .haskell .type,
|
||||
pre .preprocessor,
|
||||
pre .ruby .class .parent,
|
||||
pre .built_in,
|
||||
pre .sql .aggregate,
|
||||
pre .django .template_tag,
|
||||
pre .django .variable,
|
||||
pre .smalltalk .class,
|
||||
pre .javadoc,
|
||||
pre .django .filter .argument,
|
||||
pre .smalltalk .localvars,
|
||||
pre .smalltalk .array,
|
||||
pre .attr_selector,
|
||||
pre .pseudo,
|
||||
pre .addition,
|
||||
pre .stream,
|
||||
pre .envvar,
|
||||
pre .apache .tag,
|
||||
pre .apache .cbracket,
|
||||
pre .tex .command,
|
||||
pre .prompt {
|
||||
color: #1abc9c;
|
||||
}
|
||||
pre .comment,
|
||||
pre .java .annotation,
|
||||
pre .python .decorator,
|
||||
pre .template_comment,
|
||||
pre .pi,
|
||||
pre .doctype,
|
||||
pre .shebang,
|
||||
pre .apache .sqbracket,
|
||||
pre .tex .formula {
|
||||
color: #95a5a6;
|
||||
}
|
||||
pre .deletion {
|
||||
color: #c0392b;
|
||||
}
|
||||
pre .coffeescript .javascript,
|
||||
pre .javascript .xml,
|
||||
pre .tex .formula,
|
||||
pre .xml .javascript,
|
||||
pre .xml .vbscript,
|
||||
pre .xml .css,
|
||||
pre .xml .cdata {
|
||||
opacity: 0.5;
|
||||
}
|
||||
166
fly/Python入门/index.html
Normal file
@@ -0,0 +1,166 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<head><meta name="generator" content="Hexo 3.9.0">
|
||||
<!-- Title -->
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="applicable-device" content="pc,mobile">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
||||
<meta name="author" content="flypython">
|
||||
<meta name="designer" content="flypython">
|
||||
<meta name="keywords" content="Python入门,FlyPython - 专业的Python学习社区,flypython, 飞蟒,飞蟒Python,Python入门,Python自动化,Python日报">
|
||||
<meta property="og:title" content="Python入门 | FlyPython - 专业的Python学习社区">
|
||||
<meta property="og:site_name" content="http://www.flypython.com">
|
||||
|
||||
<meta property="og:description" content="FlyPython是提供一站式Python编程学习的组织,我们致力于为用户提供高效,有趣的学习环境,打造专注于Python的中文学习社区">
|
||||
<meta name="description" content="FlyPython是提供一站式Python编程学习的组织,我们致力于为用户提供高效,有趣的学习环境,打造专注于Python的中文学习社区">
|
||||
|
||||
<meta name="rating" content="general">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="format-detection" content="telephone=yes">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="robots" content="index, follow">
|
||||
<link rel="icon" href="/images/favicon.ico">
|
||||
<title>Python入门 | FlyPython - 专业的Python学习社区</title>
|
||||
<link rel="stylesheet" href="/css/f25.css">
|
||||
<link rel="stylesheet" href="/css/highlight.css">
|
||||
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-147288599-1');
|
||||
</script>
|
||||
|
||||
</head>
|
||||
</head>
|
||||
<body>
|
||||
<header class="wrapper header-wrapper">
|
||||
<div class="container header-nav-wrapper">
|
||||
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
|
||||
<nav class="nav-wrapper">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
<span class="btn-menu" id="J_header_menu">
|
||||
<div class="inner">
|
||||
<span class="line line-01"></span>
|
||||
<span class="line line-02"></span>
|
||||
<span class="line line-03"></span>
|
||||
</div>
|
||||
</span>
|
||||
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
|
||||
<nav class="wrapper mb-nav-container">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<section class="body-wrapper">
|
||||
<section class="banner-wrapper">
|
||||
<div class="container banner-container"></div>
|
||||
</section>
|
||||
<section class="wrapper menu-wrapper">
|
||||
<nav class="container">
|
||||
<a href="/" class="">全部文章</a><a href="/fly/Python入门/" class="active" title="Python入门">Python入门</a><a href="/fly/Python新特性/" class="" title="Python新特性">Python新特性</a><a href="/fly/自然语言处理/" class="" title="自然语言处理">自然语言处理</a><a href="/fly/自动化办公/" class="" title="自动化办公">自动化办公</a>
|
||||
</nav>
|
||||
</section>
|
||||
|
||||
<div class="wrapper index-wrapper">
|
||||
<ul class="container list-container">
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-tutorial-03/" class="wrapper post-i-link" title="Python正则15分钟入门">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/tutorial3.png" alt="Python正则15分钟入门">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python正则15分钟入门">Python正则15分钟入门</h3>
|
||||
<p class="wrapper subtitle">
|
||||
Python入门教程
|
||||
</p>
|
||||
<div class="wrapper time">2019-02-03</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-tutorial-02/" class="wrapper post-i-link" title="潘石屹:我们为什么要学习Python语言?">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/tutorial2.png" alt="潘石屹:我们为什么要学习Python语言?">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="潘石屹:我们为什么要学习Python语言?">潘石屹:我们为什么要学习Python语言?</h3>
|
||||
<p class="wrapper subtitle">
|
||||
Python入门教程
|
||||
</p>
|
||||
<div class="wrapper time">2019-02-02</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-tutorial-01/" class="wrapper post-i-link" title="你是如何自学Python的?">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/tutorial1.png" alt="你是如何自学Python的?">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="你是如何自学Python的?">你是如何自学Python的?</h3>
|
||||
<p class="wrapper subtitle">
|
||||
Python入门教程
|
||||
</p>
|
||||
<div class="wrapper time">2019-02-01</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/about/" class="wrapper post-i-link" title="关于我们">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/flypython.png" alt="关于我们">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="关于我们">关于我们</h3>
|
||||
<p class="wrapper subtitle">
|
||||
关于飞蟒Python
|
||||
</p>
|
||||
<div class="wrapper time">2018-01-01</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="tips-top-wrapper">
|
||||
<span class="tip-top-container" onclick="scrollToWindowTop()">
|
||||
<span class="l-bar"></span>
|
||||
<span class="r-bar"></span>
|
||||
</span>
|
||||
</div>
|
||||
<footer class="wrapper footer-wrapper">
|
||||
<div class="container"><span class="copyright">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
140
fly/Python新特性/index.html
Normal file
@@ -0,0 +1,140 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<head><meta name="generator" content="Hexo 3.9.0">
|
||||
<!-- Title -->
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="applicable-device" content="pc,mobile">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
||||
<meta name="author" content="flypython">
|
||||
<meta name="designer" content="flypython">
|
||||
<meta name="keywords" content="Python新特性,FlyPython - 专业的Python学习社区,flypython, 飞蟒,飞蟒Python,Python入门,Python自动化,Python日报">
|
||||
<meta property="og:title" content="Python新特性 | FlyPython - 专业的Python学习社区">
|
||||
<meta property="og:site_name" content="http://www.flypython.com">
|
||||
|
||||
<meta property="og:description" content="FlyPython是提供一站式Python编程学习的组织,我们致力于为用户提供高效,有趣的学习环境,打造专注于Python的中文学习社区">
|
||||
<meta name="description" content="FlyPython是提供一站式Python编程学习的组织,我们致力于为用户提供高效,有趣的学习环境,打造专注于Python的中文学习社区">
|
||||
|
||||
<meta name="rating" content="general">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="format-detection" content="telephone=yes">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="robots" content="index, follow">
|
||||
<link rel="icon" href="/images/favicon.ico">
|
||||
<title>Python新特性 | FlyPython - 专业的Python学习社区</title>
|
||||
<link rel="stylesheet" href="/css/f25.css">
|
||||
<link rel="stylesheet" href="/css/highlight.css">
|
||||
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-147288599-1');
|
||||
</script>
|
||||
|
||||
</head>
|
||||
</head>
|
||||
<body>
|
||||
<header class="wrapper header-wrapper">
|
||||
<div class="container header-nav-wrapper">
|
||||
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
|
||||
<nav class="nav-wrapper">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
<span class="btn-menu" id="J_header_menu">
|
||||
<div class="inner">
|
||||
<span class="line line-01"></span>
|
||||
<span class="line line-02"></span>
|
||||
<span class="line line-03"></span>
|
||||
</div>
|
||||
</span>
|
||||
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
|
||||
<nav class="wrapper mb-nav-container">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<section class="body-wrapper">
|
||||
<section class="banner-wrapper">
|
||||
<div class="container banner-container"></div>
|
||||
</section>
|
||||
<section class="wrapper menu-wrapper">
|
||||
<nav class="container">
|
||||
<a href="/" class="">全部文章</a><a href="/fly/Python入门/" class="" title="Python入门">Python入门</a><a href="/fly/Python新特性/" class="active" title="Python新特性">Python新特性</a><a href="/fly/自然语言处理/" class="" title="自然语言处理">自然语言处理</a><a href="/fly/自动化办公/" class="" title="自动化办公">自动化办公</a>
|
||||
</nav>
|
||||
</section>
|
||||
|
||||
<div class="wrapper index-wrapper">
|
||||
<ul class="container list-container">
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-new-02/" class="wrapper post-i-link" title="Python 3.8新特性——仅限位置形参">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/new-02.png" alt="Python 3.8新特性——仅限位置形参">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python 3.8新特性——仅限位置形参">Python 3.8新特性——仅限位置形参</h3>
|
||||
<p class="wrapper subtitle">
|
||||
介绍Python语言新的特性
|
||||
</p>
|
||||
<div class="wrapper time">2019-04-02</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-new-01/" class="wrapper post-i-link" title="Python 3.8新特性——赋值表达式">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/new-01.png" alt="Python 3.8新特性——赋值表达式">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python 3.8新特性——赋值表达式">Python 3.8新特性——赋值表达式</h3>
|
||||
<p class="wrapper subtitle">
|
||||
介绍Python语言新的特性
|
||||
</p>
|
||||
<div class="wrapper time">2019-04-01</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="tips-top-wrapper">
|
||||
<span class="tip-top-container" onclick="scrollToWindowTop()">
|
||||
<span class="l-bar"></span>
|
||||
<span class="r-bar"></span>
|
||||
</span>
|
||||
</div>
|
||||
<footer class="wrapper footer-wrapper">
|
||||
<div class="container"><span class="copyright">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
179
fly/自动化办公/index.html
Normal file
@@ -0,0 +1,179 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<head><meta name="generator" content="Hexo 3.9.0">
|
||||
<!-- Title -->
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="applicable-device" content="pc,mobile">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
||||
<meta name="author" content="flypython">
|
||||
<meta name="designer" content="flypython">
|
||||
<meta name="keywords" content="自动化办公,FlyPython - 专业的Python学习社区,flypython, 飞蟒,飞蟒Python,Python入门,Python自动化,Python日报">
|
||||
<meta property="og:title" content="自动化办公 | FlyPython - 专业的Python学习社区">
|
||||
<meta property="og:site_name" content="http://www.flypython.com">
|
||||
|
||||
<meta property="og:description" content="FlyPython是提供一站式Python编程学习的组织,我们致力于为用户提供高效,有趣的学习环境,打造专注于Python的中文学习社区">
|
||||
<meta name="description" content="FlyPython是提供一站式Python编程学习的组织,我们致力于为用户提供高效,有趣的学习环境,打造专注于Python的中文学习社区">
|
||||
|
||||
<meta name="rating" content="general">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="format-detection" content="telephone=yes">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="robots" content="index, follow">
|
||||
<link rel="icon" href="/images/favicon.ico">
|
||||
<title>自动化办公 | FlyPython - 专业的Python学习社区</title>
|
||||
<link rel="stylesheet" href="/css/f25.css">
|
||||
<link rel="stylesheet" href="/css/highlight.css">
|
||||
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-147288599-1');
|
||||
</script>
|
||||
|
||||
</head>
|
||||
</head>
|
||||
<body>
|
||||
<header class="wrapper header-wrapper">
|
||||
<div class="container header-nav-wrapper">
|
||||
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
|
||||
<nav class="nav-wrapper">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
<span class="btn-menu" id="J_header_menu">
|
||||
<div class="inner">
|
||||
<span class="line line-01"></span>
|
||||
<span class="line line-02"></span>
|
||||
<span class="line line-03"></span>
|
||||
</div>
|
||||
</span>
|
||||
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
|
||||
<nav class="wrapper mb-nav-container">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<section class="body-wrapper">
|
||||
<section class="banner-wrapper">
|
||||
<div class="container banner-container"></div>
|
||||
</section>
|
||||
<section class="wrapper menu-wrapper">
|
||||
<nav class="container">
|
||||
<a href="/" class="">全部文章</a><a href="/fly/Python入门/" class="" title="Python入门">Python入门</a><a href="/fly/Python新特性/" class="" title="Python新特性">Python新特性</a><a href="/fly/自然语言处理/" class="" title="自然语言处理">自然语言处理</a><a href="/fly/自动化办公/" class="active" title="自动化办公">自动化办公</a>
|
||||
</nav>
|
||||
</section>
|
||||
|
||||
<div class="wrapper index-wrapper">
|
||||
<ul class="container list-container">
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-oa-05/" class="wrapper post-i-link" title="Python读取PDF图片">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/oa4.jpg" alt="Python读取PDF图片">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python读取PDF图片">Python读取PDF图片</h3>
|
||||
<p class="wrapper subtitle">
|
||||
极简Python自动化办公系列
|
||||
</p>
|
||||
<div class="wrapper time">2019-01-05</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-oa-04/" class="wrapper post-i-link" title="Python读取PDF文字和表格">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/oa4.jpg" alt="Python读取PDF文字和表格">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python读取PDF文字和表格">Python读取PDF文字和表格</h3>
|
||||
<p class="wrapper subtitle">
|
||||
极简Python自动化办公系列
|
||||
</p>
|
||||
<div class="wrapper time">2019-01-04</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-oa-03/" class="wrapper post-i-link" title="Python批量转换任意文档格式">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/oa3.jpg" alt="Python批量转换任意文档格式">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python批量转换任意文档格式">Python批量转换任意文档格式</h3>
|
||||
<p class="wrapper subtitle">
|
||||
极简Python自动化办公系列
|
||||
</p>
|
||||
<div class="wrapper time">2019-01-03</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-oa-02/" class="wrapper post-i-link" title="Python写入Word文档">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/oa2.jpg" alt="Python写入Word文档">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python写入Word文档">Python写入Word文档</h3>
|
||||
<p class="wrapper subtitle">
|
||||
极简Python自动化办公系列
|
||||
</p>
|
||||
<div class="wrapper time">2019-01-02</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-oa-01/" class="wrapper post-i-link" title="Python写入Excel表格">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/oa1.jpg" alt="Python写入Excel表格">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python写入Excel表格">Python写入Excel表格</h3>
|
||||
<p class="wrapper subtitle">
|
||||
极简Python自动化办公系列
|
||||
</p>
|
||||
<div class="wrapper time">2019-01-01</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="tips-top-wrapper">
|
||||
<span class="tip-top-container" onclick="scrollToWindowTop()">
|
||||
<span class="l-bar"></span>
|
||||
<span class="r-bar"></span>
|
||||
</span>
|
||||
</div>
|
||||
<footer class="wrapper footer-wrapper">
|
||||
<div class="container"><span class="copyright">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
127
fly/自然语言处理/index.html
Normal file
@@ -0,0 +1,127 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<head><meta name="generator" content="Hexo 3.9.0">
|
||||
<!-- Title -->
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="applicable-device" content="pc,mobile">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
||||
<meta name="author" content="flypython">
|
||||
<meta name="designer" content="flypython">
|
||||
<meta name="keywords" content="自然语言处理,FlyPython - 专业的Python学习社区,flypython, 飞蟒,飞蟒Python,Python入门,Python自动化,Python日报">
|
||||
<meta property="og:title" content="自然语言处理 | FlyPython - 专业的Python学习社区">
|
||||
<meta property="og:site_name" content="http://www.flypython.com">
|
||||
|
||||
<meta property="og:description" content="FlyPython是提供一站式Python编程学习的组织,我们致力于为用户提供高效,有趣的学习环境,打造专注于Python的中文学习社区">
|
||||
<meta name="description" content="FlyPython是提供一站式Python编程学习的组织,我们致力于为用户提供高效,有趣的学习环境,打造专注于Python的中文学习社区">
|
||||
|
||||
<meta name="rating" content="general">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="format-detection" content="telephone=yes">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="robots" content="index, follow">
|
||||
<link rel="icon" href="/images/favicon.ico">
|
||||
<title>自然语言处理 | FlyPython - 专业的Python学习社区</title>
|
||||
<link rel="stylesheet" href="/css/f25.css">
|
||||
<link rel="stylesheet" href="/css/highlight.css">
|
||||
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-147288599-1');
|
||||
</script>
|
||||
|
||||
</head>
|
||||
</head>
|
||||
<body>
|
||||
<header class="wrapper header-wrapper">
|
||||
<div class="container header-nav-wrapper">
|
||||
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
|
||||
<nav class="nav-wrapper">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
<span class="btn-menu" id="J_header_menu">
|
||||
<div class="inner">
|
||||
<span class="line line-01"></span>
|
||||
<span class="line line-02"></span>
|
||||
<span class="line line-03"></span>
|
||||
</div>
|
||||
</span>
|
||||
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
|
||||
<nav class="wrapper mb-nav-container">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<section class="body-wrapper">
|
||||
<section class="banner-wrapper">
|
||||
<div class="container banner-container"></div>
|
||||
</section>
|
||||
<section class="wrapper menu-wrapper">
|
||||
<nav class="container">
|
||||
<a href="/" class="">全部文章</a><a href="/fly/Python入门/" class="" title="Python入门">Python入门</a><a href="/fly/Python新特性/" class="" title="Python新特性">Python新特性</a><a href="/fly/自然语言处理/" class="active" title="自然语言处理">自然语言处理</a><a href="/fly/自动化办公/" class="" title="自动化办公">自动化办公</a>
|
||||
</nav>
|
||||
</section>
|
||||
|
||||
<div class="wrapper index-wrapper">
|
||||
<ul class="container list-container">
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-nlp-01/" class="wrapper post-i-link" title="使用 Python 生成《红楼梦》词云">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/nlp1.png" alt="使用 Python 生成《红楼梦》词云">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="使用 Python 生成《红楼梦》词云">使用 Python 生成《红楼梦》词云</h3>
|
||||
<p class="wrapper subtitle">
|
||||
Python自然语言处理教程
|
||||
</p>
|
||||
<div class="wrapper time">2019-03-01</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="tips-top-wrapper">
|
||||
<span class="tip-top-container" onclick="scrollToWindowTop()">
|
||||
<span class="l-bar"></span>
|
||||
<span class="r-bar"></span>
|
||||
</span>
|
||||
</div>
|
||||
<footer class="wrapper footer-wrapper">
|
||||
<div class="container"><span class="copyright">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
BIN
images/bg.png
Normal file
|
After Width: | Height: | Size: 223 KiB |
BIN
images/bg_post.png
Normal file
|
After Width: | Height: | Size: 138 KiB |
BIN
images/bg_sm.png
Normal file
|
After Width: | Height: | Size: 161 KiB |
BIN
images/default_cover.jpg
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
images/flypython.png
Normal file
|
After Width: | Height: | Size: 107 KiB |
BIN
images/new-01.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
images/new-02.png
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
images/nlp1.png
Normal file
|
After Width: | Height: | Size: 309 KiB |
BIN
images/oa1.jpg
Normal file
|
After Width: | Height: | Size: 93 KiB |
BIN
images/oa2.jpg
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
images/oa3.jpg
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
images/oa4.jpg
Normal file
|
After Width: | Height: | Size: 8.6 KiB |
BIN
images/tutorial1.png
Normal file
|
After Width: | Height: | Size: 76 KiB |
BIN
images/tutorial2.png
Normal file
|
After Width: | Height: | Size: 85 KiB |
BIN
images/tutorial3.png
Normal file
|
After Width: | Height: | Size: 4.3 KiB |
BIN
images/wechat.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
270
index.html
Normal file
@@ -0,0 +1,270 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<head><meta name="generator" content="Hexo 3.9.0">
|
||||
<!-- Title -->
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="applicable-device" content="pc,mobile">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, viewport-fit=cover">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
||||
<meta name="author" content="flypython">
|
||||
<meta name="designer" content="flypython">
|
||||
<meta name="keywords" content="FlyPython - 专业的Python学习社区,flypython, 飞蟒,飞蟒Python,Python入门,Python自动化,Python日报">
|
||||
<meta property="og:title" content="FlyPython - 专业的Python学习社区">
|
||||
<meta property="og:site_name" content="http://www.flypython.com">
|
||||
|
||||
<meta property="og:description" content="FlyPython是提供一站式Python编程学习的组织,我们致力于为用户提供高效,有趣的学习环境,打造专注于Python的中文学习社区">
|
||||
<meta name="description" content="FlyPython是提供一站式Python编程学习的组织,我们致力于为用户提供高效,有趣的学习环境,打造专注于Python的中文学习社区">
|
||||
|
||||
<meta name="rating" content="general">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="format-detection" content="telephone=yes">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="robots" content="index, follow">
|
||||
<link rel="icon" href="/images/favicon.ico">
|
||||
<title>FlyPython - 专业的Python学习社区</title>
|
||||
<link rel="stylesheet" href="/css/f25.css">
|
||||
<link rel="stylesheet" href="/css/highlight.css">
|
||||
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-147288599-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-147288599-1');
|
||||
</script>
|
||||
|
||||
</head>
|
||||
</head>
|
||||
<body>
|
||||
<header class="wrapper header-wrapper">
|
||||
<div class="container header-nav-wrapper">
|
||||
<div class="logo"><a href="/" title="FlyPython - 专业的Python学习社区"><h1 class="title">FlyPython</h1></a></div>
|
||||
<nav class="nav-wrapper">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
<span class="btn-menu" id="J_header_menu">
|
||||
<div class="inner">
|
||||
<span class="line line-01"></span>
|
||||
<span class="line line-02"></span>
|
||||
<span class="line line-03"></span>
|
||||
</div>
|
||||
</span>
|
||||
<div class="wrapper mb-nav-wrapper" id="J_header_menu_list">
|
||||
<nav class="wrapper mb-nav-container">
|
||||
|
||||
<a href="https://flypython.com/python" title="飞蟒微课堂">飞蟒微课堂</a>
|
||||
|
||||
<a href="https://flypython.com/flypython_daily" title="Python日报">Python日报</a>
|
||||
|
||||
<a href="https://flypython.com/PyCon/" title="PyCon">PyCon</a>
|
||||
|
||||
<a href="https://github.com/flypythoncom" title="Github">Github</a>
|
||||
|
||||
<a href="/article/about" title="关于">关于</a>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<section class="body-wrapper">
|
||||
<section class="banner-wrapper">
|
||||
<div class="container banner-container"></div>
|
||||
</section>
|
||||
<section class="wrapper menu-wrapper">
|
||||
<nav class="container">
|
||||
<a href="/" class="active">全部文章</a><a href="/fly/Python入门/" class="" title="Python入门">Python入门</a><a href="/fly/Python新特性/" class="" title="Python新特性">Python新特性</a><a href="/fly/自然语言处理/" class="" title="自然语言处理">自然语言处理</a><a href="/fly/自动化办公/" class="" title="自动化办公">自动化办公</a>
|
||||
</nav>
|
||||
</section>
|
||||
|
||||
<div class="wrapper index-wrapper">
|
||||
<ul class="container list-container">
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-new-02/" class="wrapper post-i-link" title="Python 3.8新特性——仅限位置形参">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/new-02.png" alt="Python 3.8新特性——仅限位置形参">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python 3.8新特性——仅限位置形参">Python 3.8新特性——仅限位置形参</h3>
|
||||
<p class="wrapper subtitle">
|
||||
介绍Python语言新的特性
|
||||
</p>
|
||||
<div class="wrapper time">2019-04-02</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-new-01/" class="wrapper post-i-link" title="Python 3.8新特性——赋值表达式">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/new-01.png" alt="Python 3.8新特性——赋值表达式">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python 3.8新特性——赋值表达式">Python 3.8新特性——赋值表达式</h3>
|
||||
<p class="wrapper subtitle">
|
||||
介绍Python语言新的特性
|
||||
</p>
|
||||
<div class="wrapper time">2019-04-01</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-nlp-01/" class="wrapper post-i-link" title="使用 Python 生成《红楼梦》词云">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/nlp1.png" alt="使用 Python 生成《红楼梦》词云">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="使用 Python 生成《红楼梦》词云">使用 Python 生成《红楼梦》词云</h3>
|
||||
<p class="wrapper subtitle">
|
||||
Python自然语言处理教程
|
||||
</p>
|
||||
<div class="wrapper time">2019-03-01</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-tutorial-03/" class="wrapper post-i-link" title="Python正则15分钟入门">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/tutorial3.png" alt="Python正则15分钟入门">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python正则15分钟入门">Python正则15分钟入门</h3>
|
||||
<p class="wrapper subtitle">
|
||||
Python入门教程
|
||||
</p>
|
||||
<div class="wrapper time">2019-02-03</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-tutorial-02/" class="wrapper post-i-link" title="潘石屹:我们为什么要学习Python语言?">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/tutorial2.png" alt="潘石屹:我们为什么要学习Python语言?">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="潘石屹:我们为什么要学习Python语言?">潘石屹:我们为什么要学习Python语言?</h3>
|
||||
<p class="wrapper subtitle">
|
||||
Python入门教程
|
||||
</p>
|
||||
<div class="wrapper time">2019-02-02</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-tutorial-01/" class="wrapper post-i-link" title="你是如何自学Python的?">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/tutorial1.png" alt="你是如何自学Python的?">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="你是如何自学Python的?">你是如何自学Python的?</h3>
|
||||
<p class="wrapper subtitle">
|
||||
Python入门教程
|
||||
</p>
|
||||
<div class="wrapper time">2019-02-01</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-oa-05/" class="wrapper post-i-link" title="Python读取PDF图片">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/oa4.jpg" alt="Python读取PDF图片">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python读取PDF图片">Python读取PDF图片</h3>
|
||||
<p class="wrapper subtitle">
|
||||
极简Python自动化办公系列
|
||||
</p>
|
||||
<div class="wrapper time">2019-01-05</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-oa-04/" class="wrapper post-i-link" title="Python读取PDF文字和表格">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/oa4.jpg" alt="Python读取PDF文字和表格">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python读取PDF文字和表格">Python读取PDF文字和表格</h3>
|
||||
<p class="wrapper subtitle">
|
||||
极简Python自动化办公系列
|
||||
</p>
|
||||
<div class="wrapper time">2019-01-04</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-oa-03/" class="wrapper post-i-link" title="Python批量转换任意文档格式">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/oa3.jpg" alt="Python批量转换任意文档格式">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python批量转换任意文档格式">Python批量转换任意文档格式</h3>
|
||||
<p class="wrapper subtitle">
|
||||
极简Python自动化办公系列
|
||||
</p>
|
||||
<div class="wrapper time">2019-01-03</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-oa-02/" class="wrapper post-i-link" title="Python写入Word文档">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/oa2.jpg" alt="Python写入Word文档">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python写入Word文档">Python写入Word文档</h3>
|
||||
<p class="wrapper subtitle">
|
||||
极简Python自动化办公系列
|
||||
</p>
|
||||
<div class="wrapper time">2019-01-02</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/python-oa-01/" class="wrapper post-i-link" title="Python写入Excel表格">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/oa1.jpg" alt="Python写入Excel表格">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="Python写入Excel表格">Python写入Excel表格</h3>
|
||||
<p class="wrapper subtitle">
|
||||
极简Python自动化办公系列
|
||||
</p>
|
||||
<div class="wrapper time">2019-01-01</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="post-i-wrapper">
|
||||
<a href="/article/about/" class="wrapper post-i-link" title="关于我们">
|
||||
<div class="wrapper cover">
|
||||
<img src="/images/flypython.png" alt="关于我们">
|
||||
</div>
|
||||
<h3 class="wrapper title" title="关于我们">关于我们</h3>
|
||||
<p class="wrapper subtitle">
|
||||
关于飞蟒Python
|
||||
</p>
|
||||
<div class="wrapper time">2018-01-01</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="tips-top-wrapper">
|
||||
<span class="tip-top-container" onclick="scrollToWindowTop()">
|
||||
<span class="l-bar"></span>
|
||||
<span class="r-bar"></span>
|
||||
</span>
|
||||
</div>
|
||||
<footer class="wrapper footer-wrapper">
|
||||
<div class="container"><span class="copyright">© 2020 FlyPython . All Rights Reserved.</span></div>
|
||||
</footer>
|
||||
</section>
|
||||
<script src="/js/f25.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
66
js/f25.js
Normal file
@@ -0,0 +1,66 @@
|
||||
/**
|
||||
* [删除ClassName]
|
||||
* @param {*} element
|
||||
* @param {*} className
|
||||
*/
|
||||
function removeClassName(element , className){
|
||||
if ( !hasClassName(element , className) ){
|
||||
return element;
|
||||
}
|
||||
element.className = ' ' + element.className.trim() + ' ';
|
||||
element.className = element.className.replace(' ' + className + ' ' , ' ').trim();
|
||||
return element;
|
||||
}
|
||||
/**
|
||||
* [添加className]
|
||||
* @param {*} element
|
||||
* @param {*} className
|
||||
*/
|
||||
function addClassName(element , className){
|
||||
if ( hasClassName(element , className) ){
|
||||
return element;
|
||||
}
|
||||
element.className = element.className.trim() + ' ' + className.trim();
|
||||
return element;
|
||||
}
|
||||
|
||||
/**
|
||||
* [判断是否包含对应的className]
|
||||
* @param {*} element
|
||||
* @param {*} className
|
||||
*/
|
||||
function hasClassName(element , className){
|
||||
if ( (' ' + element.className.trim() + ' ').indexOf(' ' + className.trim() + ' ') >= 0 ){
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* [scrollToWindowTop 返回顶部]
|
||||
* @return {[type]} [description]
|
||||
*/
|
||||
function scrollToWindowTop(){
|
||||
return window.scroll(0,0);
|
||||
}
|
||||
|
||||
var closeClassName = 'btn-close';
|
||||
var showClassName = 'show';
|
||||
var headerMenu = document.querySelector('#J_header_menu');
|
||||
var headerMenulist = document.querySelector('#J_header_menu_list');
|
||||
|
||||
if ( headerMenu && headerMenulist ){
|
||||
//h5菜单栏展示
|
||||
headerMenu.addEventListener('click' , (event)=>{
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
||||
if ( hasClassName(headerMenu , closeClassName) ){
|
||||
removeClassName(headerMenulist , showClassName);
|
||||
removeClassName(headerMenu , closeClassName);
|
||||
}else{
|
||||
addClassName(headerMenulist , showClassName);
|
||||
addClassName(headerMenu , closeClassName);
|
||||
}
|
||||
});
|
||||
}
|
||||