2012-03-01 148 views
0

我已经wrirtten一个Python脚本,执行以下操作时面临的问题:从ZIP文件读取文件并将其写入到另一个文件

1)读取一个zip文件中的日志文件(.jrn)一个特定的路径,并将其写入另一个路径上的文本文件。

2)该文本文件被另一个python脚本(比如x.py)读取以执行某些特定操作。

im面临的问题是,当它被另一个python脚本读取时,被写入的文本文件虽然其内容与日志文件(从zipfile读取)中显示的相同,但是它会被x.py读取特殊字符,导致脚本失败。

当x.py脚本读取原始JRN文件(zip文件),它是越来越成功处理..

我使用Python 2.4的版本,所以我不能使用压缩文件库提取物()函数。

我只想要写入的文本文件的内容与从zip读取的jrn文件的内容完全相同。请帮助。

代码:

fout = zipfile.ZipFile(os.path.join(Out_path_Afp,Out_Path_Afp_File),'r') 
files = fout.namelist() 
dir = filter(lambda x:os.path.splitext(string.lower(x))[1]=='.jrn',files) 
out_zip_files_pdf = re.compile('WW_'+Input_file_name+'_Restsoe_toload_prod.jrn') 
pdf_jrn_list = filter(lambda x:out_zip_files_pdf.match(x),files) 
for pdf_jrn_ls in pdf_jrn_list: 
    pdf_jrn = pdf_jrn_ls  
print pdf_jrn 
data_jrn_pdf = fout.read(pdf_jrn) 
txt_outpath = "e:\\senthil\\log_recon\\jrn\\" 
txt_outfile_pdf = time.strftime("%Y%m%d_%H%M",LocalTime)+'WW_'+Input_file_name+'_Restsoe_toload_prod.txt' 

Output_Ptr_pdf = open(txt_outpath + txt_outfile_pdf,'w') 
Output_Ptr_pdf.write(data_jrn_pdf) 
Output_Ptr_pdf.close() 

回答

0

如果你正在做直副本,没有必要下降到把数据从文件自己。只需解压缩即可How do I copy a file in python?

虽然看起来你可能没有做一个直接的副本。 jrn文件文本是否被编码?你想写一个PDF吗?你的代码建议如此,但是你的描述没有。

+0

嗨..我试图写入一个txt文件和jrn文件不编码。 – user1240863 2012-03-01 17:54:35

+0

嗨..我试图写入一个txt文件和jrn文件不编码。在纯文本中,文本文件的内容是完全相同的jrn文件..但内部一些特殊字符正在插入.. – user1240863 2012-03-01 17:57:43

+0

因此,jrn是直接的ASCII或UTF-8,并且您试图仅以相同的文本编码复制文件,并使用相同的内容更正?如果是这样,unziping和在该线程中使用上述解决方案应该做的工作就好了。 – 2012-03-01 17:57:50

相关问题