详解python脚本自动生成需要文件实例代码
python脚本自动生成需要文件
在工作中我们经常需要通过一个文件写出另外一个文件,然而既然是对应关系肯定可以总结规律让计算机帮我们完成,今天我们就通过一个通用文件生成的python脚本来实现这个功能,将大家从每日重复的劳动中解放!
定义一个函数
代码如下 | 复制代码 |
defproduceBnf(infilename,outfilename): List=[] withopen(infilename,'r') as inf: forlineininf.readlines(): List.append(re.match("正则表达式").group(?)) withopen(outfilename,'w') as outf: i=0 outf.write("文件头"); forcommandinList: outf.write(“写入刚刚读取的内容(也可能是某种对应关系)”) outf.write("写入其他内容") outf.write("写入文件尾") |
差不多,大多数情况下,都是这样的框架,这个函数需要一个输入文件,一个输出文件,一般情况下,我们希望,能够从命令行中将输入文件参数传入,然后在本目录下生成输出文件
获得输入输出路径
代码如下 | 复制代码 |
infile=sys.argv[1] produceBnf(infile,os.path.join(os.path.dirname(infile),"输出文件的名字")); |
ok,搞定,然后在命令行中我们执行这个python脚本然后加个参数就完工了。
脚本就是用来帮助我们简化重复的工作,让我们去做更有意义,更加需要思考的事情,所以希望大家以后多用脚本来简化自己的重复工作。
php怎么用函数外的变量?本文实例介绍了PHP闭包函数传参及使用外部变量的方法,有兴趣的同学可以参考一下。在Laravel控制器写两个方法,一个是在内部创建一个闭包函数,一个是执行传过来的闭包函数,测试闭包的写法,use使用外部变量,及闭包函数的传参。如下:
代码如下 | 复制代码 |
//测试闭包传参及use使用外部变量 publicfunctiontestClosure($t1,$t2) { $closure=function($param1,$param2)use($t1,$t2) { echo$param1.$param2.$t1.$t2; }; $this->execClosure('test.closure',$closure); } //执行闭包函数 protectedfunctionexecClosure($name, Closure$closure) { echo'Closure func name:'.$name; echo' $closure('p1','p2'); } |
在routes.php添加路由:
代码如下 | 复制代码 |
Route::get('/test/closure/{t1}/{t2}',['uses'=>'TestController@testClosure']); |
访问www.example.com/test/closure/hehe1/hehe2
浏览器输出结果:
Closure func name:test.closure
p1p2hehe1hehe2
本次一聚教程网为大家带来了正则替换回调函数preg_replace_callback()—Unicode转中文方法,想要学习这个技能的同学快来看看吧。在之前编写PHP工具类时,常用一个正则替换函数为 preg_replace(),加上正则修饰符 /e,就能够执行强大的回调函数,实现模板引擎编译(也就是字符串替换)。此方法经过多个项目的实验发现存在不足,例如:双引号被转义的问题。
经过文档的查询和学习发现可以使用另外一个正则替换回调函数 preg_replace_callback(),在此做个记录,参考方法如下:
代码如下 | 复制代码 |
$data = curl_menu(ACCESS_TOKEN, preg_replace("#\\\u([0-9a-f]+)#ie", "iconv('UCS-2', 'UTF-8', pack('H4', '\\1'))", $data)); |
替换如下:
代码如下 | 复制代码 |
function decodeUnicode($str){ return preg_replace_callback('/\\\\u([0-9a-f]{4})/i', create_function('$matches', 'return iconv("UCS-2BE","UTF-8",pack("H*", $matches[1]));'), $str); } |
第一种算法,CSDN上别人的想法
代码如下 | 复制代码 |
$num= 0;
$array=array(1, 2, 3, 4, 5, 6, 7, 8, 9);
$arr=array();
$g= 5;
$tag= true;
while($tag) {
$count=count($array);
$t= rand(0, 1);
if($t== 1) {
$arr[] =$array[$num];
unset($array[$num]);
}
$num++;
if(count($arr) ==$g) {
$tag= false;
}
if($num==$count) {
$num= 0; //循环
}
}
var_dump($arr);
|
第二种算法,自己想的。
可以在每次取出数据之后将该数据和最后没有获取的数据替换,然后再去没有取得的数据中随机获取值
代码如下 | 复制代码 |
functionswap(&$a, &$b)
{
$temp=$b;
$b=$a;
$a=$temp;
}
$result=array();
$src=array();
for($i= 0 ;$i< 40 ;$i++)
{
$src[] =$i+ 1;
}
$arr_len=count($src);
$count= 20;
$index= 0;
while($index<$count)
{
$random= rand(0,$arr_len-$index- 1);
$result[] =$src[$random];
swap($src[$random] ,$src[$arr_len-$index- 1]);
$index+= 1;
}
print_r(json_encode($result));
print_r(json_encode($src));
|
相关文章
- 这篇文章主要介绍了MyBatis-Plus自动填充功能失效导致的原因及解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-04
- 本文介绍两种使用 php 生成二维码的方法。 (1)利用google生成二维码的开放接口,代码如下: /** * google api 二维码生成【QRcode可以存储最多4296个字母数字类型的任意文本,具体可以查看二维码数据格式】 * @param strin...2015-10-21
- 这篇文章主要介绍了Java生成随机姓名、性别和年龄的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-10-01
- 这篇文章主要介绍了C#生成随机数功能,涉及C#数学运算与字符串操作相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了C#实现延时并自动关闭MessageBox的方法,非常实用的功能,需要的朋友可以参考下...2020-06-25
- 下面小编就为大家带来一篇jQuery为动态生成的select元素添加事件的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-09-01
- 关于生成唯一数字ID的问题,是不是需要使用rand生成一个随机数,然后去数据库查询是否有这个数呢?感觉这样的话有点费时间,有没有其他方法呢?当然不是,其实有两种方法可以解决。 1. 如果你只用php而不用数据库的话,那时间戳+随...2015-11-24
- 经常制作开发不同的网站的后台,写过很多种不同的后台导航写法。 最终积累了这种最写法,算是最好的吧...2013-09-29
- js生成随机数主要用到了内置的Math对象的random()方法。用法如:Math.random()。它返回的是一个 0 ~ 1 之间的随机数。有了这么一个方法,那生成任意随机数就好理解了。比如实际中我们可能会有如下的需要: (1)生成一个 0 - 1...2015-10-21
- 验证码是一个现在WEB2.0中常见的一个功能了,像注册、登录又或者是留言页面,都需要注册码来验证当前操作者的合法性,我们会看到有些网站没有验证码,但那是更高级的验证了,...2016-11-25
- 复制代码 代码如下:function getTagStyle(){ $minFontSize=8; //最小字体大小,可根据需要自行更改 $maxFontSize=18; //最大字体大小,可根据需要自行更改 return 'font-size:'.($minFontSize+lcg_value()*(abs($maxFo...2013-10-04
- 这篇文章主要介绍了SpringMvc自动装箱及GET请求参数原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-09-19
- 解决办法:$str=”QB”.str_pad(($maxid[0]["max(id)"]+1),5,”0″,STR_PAD_LEFT ); 其中$maxid[0]["max(id)"]+1) 是利用max函数从数据库中找也ID最大的一个值, ID为主键,不会重复。 str_pad() 函数把字符串填充为指...2013-10-04
- 下面小编就为大家带来一篇JS生成某个范围的随机数【四种情况详解】。小编觉得挺不错的,现在分享给大家,也给大家做个参考,一起跟随小编过来看看吧...2016-04-22
- 这篇文章主要介绍了C#生成Word文档代码示例,本文直接给出代码实例,需要的朋友可以参考下...2020-06-25
- 这篇文章主要给大家介绍了关于如何利用Redis如何实现自动补全功能的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Redis具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧...2020-04-17
- 本文主要介绍了Vue组件文档生成工具库的方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-08-11
- 这篇文章主要介绍了PHP简单实现生成txt文件到指定目录的方法,简单对比分析了PHP中fwrite及file_put_contents等函数的使用方法,需要的朋友可以参考下...2016-04-28
- 这篇文章主要给大家介绍了关于MySQL自动停机的问题处理,文中通过示例代码介绍的非常详细,对大家学习或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧...2020-06-01
- 这篇文章主要介绍了史上最简洁C# 生成条形码图片思路及示例分享,需要的朋友可以参考下...2020-06-25