[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 26# pcl_test

多谢大神,数据已经上传了,前面是有空格的,但21楼和26楼代码完美解决,26楼的更简洁。
还想好奇的问问,如果每列除的数相同,是不是还可以简单些?

TOP

回复 28# WHY

谢谢!您的代码似乎也对文件数据做了修改,但看不懂,如果想更改除数,不知道怎么做。

TOP

本帖最后由 pcl_test 于 2016-9-29 23:39 编辑

回复 31# meiszp
26楼
  1. powershell -c "dir *.txt|?{$_ -is [IO.FileInfo]}|%%{gc $_|%%{if($_ -match '^\s*$'){$_}else{$a=($_.trim() -split '\s+');$line='';for($i=0;$i -le ($a.length-1);$i++){$line+='  '+('{0:e8}' -f ($a[$i]/指定的共同除数))};$line.trim()}}|out-file ('New_'+$_.name) -encoding ascii}"
  2. pause
复制代码
28楼($b.Value/++$i)改为($b.Value/指定的共同除数)

TOP

python 的pandas 处理起来真的是完全不费力啊。

pandas 是一个python用来进行数据处理和计算的库,提供了很多非常简单友好易用的数据处理相关的接口.

处理单个文件的代码示例:
  1. #2016年9月30日 08:39:27 codegay
  2. from pandas import *
  3. csv = read_csv("F31_03.txt",sep='\s+',header=None)
  4. s = Series([10,20,30,40,50,60,70])
  5. newcsv = csv / s #csv 中的数据每列除以 s中对应的数值
  6. print(newcsv)
复制代码
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

发现win8.1(PowerShell 4.0)与 win7(PowerShell 2.0)在脚本块中定义变量有区别
脚本块中的变量作用域原本应该是Local性质的,但win7把它当作Global传递,混乱了。

以下代码win7、win8.1测试通过(第1列/10;第2列/20;第3列/30;......):
  1. @echo off
  2. set "r='\d+\.?\d*[Ee][-+]\d{3}'"
  3. set "s=[IO.File]::ReadAllText($_,[Text.Encoding]::Default)"
  4. md new\ 2>nul
  5. PowerShell -c "dir *.txt|%%{[regex]::Replace(%s%,\"[^^`r`n]+\",{param($a,$global:i=0);[regex]::Replace($a.Value,%r%,{param($b);($b.Value/++$global:i/10).ToString('e8')})})>('new\'+$_.Name)}"
  6. pause
复制代码

TOP

返回列表