A trick is to compress the VCF file with bgzip, and index it with tabix. Both these tools are downloadable from the tabix home page.
See also this page for more documentation. Follow the instructions there:
bgzip my_file.vcf
tabix -p vcf my_file.vcf.gz
I am not sure if pyvcf supports compressed and indexed files. According to the source code, it seems so.
EDIT: yes, it seems that pyvcf supports compressed and indexed VCF files. See the example in pyvcf documentation:
>>> vcf_reader = vcf.Reader(filename='vcf/test/tb.vcf.gz')
>>> # fetch all records on chromosome 20 from base 1110696 through 1230237
>>> for record in vcf_reader.fetch('20', 1110695, 1230237):
... print record
Record(CHROM=20, POS=1110696, REF=A, ALT=[G, T])
Record(CHROM=20, POS=1230237, REF=T, ALT=[None])
thank you for your answer. BTW: I like your blog(http://bioinfoblog.it/)