我在使用Python处理大文件时遇到问题.我正在做的就是
f = gzip.open(pathToLog, 'r')
for line in f:
counter = counter + 1
if (counter % 1000000 == 0):
print counter
f.close
Run Code Online (Sandbox Code Playgroud)
这需要大约10m25s才能打开文件,读取行并递增此计数器.
在perl中,处理相同的文件并执行更多(一些正则表达式),整个过程大约需要1m17秒.
Perl代码:
open(LOG, "/bin/zcat $logfile |") or die "Cannot read $logfile: $!\n";
while (<LOG>) {
if (m/.*\[svc-\w+\].*login result: Successful\.$/) {
$_ =~ s/some regex here/$1,$2,$3,$4/;
push @an_array, $_
}
}
close LOG;
Run Code Online (Sandbox Code Playgroud)
任何人都可以建议我能做些什么来使Python解决方案以与Perl解决方案类似的速度运行?
编辑 我尝试解压缩文件并使用open而不是gzip.open处理它,但这只会将总时间更改为大约4m14.972s,这仍然太慢.
我还删除了modulo和print语句,并用pass替换它们,所以现在所做的就是从一个文件移到另一个文件.
我已经研究了几天了,并希望得到一些帮助.有没有办法在SMS应用程序中生成像Apple一样的多行UITextField?关于这个控件的有用之处在于它具有"沉没"外观,清楚地表明它是一个文本输入框,但同时,它扩展了每个新行字符.
如果不这样做,如果我被迫使用UITextView,任何人都可以建议如何最好地解雇键盘?'完成'和'开始'按钮似乎都会生成换行符('\n').这对我来说似乎是错的 - 当然至少其中一个应该生成一个不同的角色,这样我仍然可以允许换行符,但也可以在特定按键上关闭我的键盘.
我错过了一些简单的东西吗?
提前致谢 :)
我有一个SSIS项目,我正在构建一个基于某些变量的SQL命令.我正在脚本任务中构造命令,并希望将构造的SQL输出到"执行结果"窗口.我试图使用我的脚本内部的FireInformation行执行此操作,如下所示:
Dts.Events.FireInformation(99, "test", "Make this event appear!", "", 0, true);
Run Code Online (Sandbox Code Playgroud)
但是,在脚本编辑器中编辑ScriptMain.cs时,该行以红色下划线,并且在鼠标悬停时,我收到以下消息:
错误:
'Microsoft.SqlServer.Dts.Tasks.ScriptTask.EventsObjectWrapper.FireInformation(int,string,string,string,int,ref bool')的最佳重载方法匹配包含一些无效参数
结果,我的脚本无法编译,我无法执行它.
知道我在这里做错了什么,或者我需要改变什么才能在执行输出中看到我的变量的值?
我正在尝试使用AWS上的Hashicorp Terraform为新项目设置一些IaC.我正在使用模块,因为我希望能够在多个环境(staging,prod,dev等)中重用东西.
我很难理解在模块中设置输出变量的位置,以及我如何在另一个模块中使用它.任何指向这一点将非常感谢!
在创建EC2机器时,我需要使用在我的VPC模块中创建的一些东西(子网ID).我的理解是你不能从另一个模块中引用某些东西,所以我试图使用VPC模块中的输出变量.
我的网站上有以下内容 main.tf
module "myapp-vpc" {
source = "dev/vpc"
aws_region = "${var.aws_region}"
}
module "myapp-ec2" {
source = "dev/ec2"
aws_region = "${var.aws_region}"
subnet_id = "${module.vpc.subnetid"}
}
Run Code Online (Sandbox Code Playgroud)
dev/vpc 只需设置一些值并使用我的vpc模块:
module "vpc" {
source = "../../modules/vpc"
aws_region = "${var.aws_region}"
vpc-cidr = "10.1.0.0/16"
public-subnet-cidr = "10.1.1.0/24"
private-subnet-cidr = "10.1.2.0/24"
}
Run Code Online (Sandbox Code Playgroud)
在我的vpc main.tf中,我aws_vpc和最后的aws_subnet资源(显示子网资源)之后有以下内容:
resource "aws_subnet" "public" {
vpc_id = "${aws_vpc.main.id}"
map_public_ip_on_launch = true
availability_zone = "${var.aws_region}a"
cidr_block = "${var.public-subnet-cidr}"
}
output "subnetid {
value = "${aws_subnet.public.id}"
} …Run Code Online (Sandbox Code Playgroud) c# ×1
file-io ×1
iphone ×1
perl ×1
python ×1
ssis ×1
terraform ×1
uitextfield ×1
uitextview ×1