2012-03-01 175 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

相關問題