从ZIP文件读取文件并将其写入到另一个文件
问题描述:
我已经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()
答
如果你正在做直副本,没有必要下降到把数据从文件自己。只需解压缩即可How do I copy a file in python?
虽然看起来你可能没有做一个直接的副本。 jrn文件文本是否被编码?你想写一个PDF吗?你的代码建议如此,但是你的描述没有。
嗨..我试图写入一个txt文件和jrn文件不编码。 – user1240863 2012-03-01 17:54:35
嗨..我试图写入一个txt文件和jrn文件不编码。在纯文本中,文本文件的内容是完全相同的jrn文件..但内部一些特殊字符正在插入.. – user1240863 2012-03-01 17:57:43
因此,jrn是直接的ASCII或UTF-8,并且您试图仅以相同的文本编码复制文件,并使用相同的内容更正?如果是这样,unziping和在该线程中使用上述解决方案应该做的工作就好了。 – 2012-03-01 17:57:50