2012-10-03 200 views
0

在你的幫助下,我製作了一個腳本,它從文件夾(/ desktop/filme/1,2,3,4,5 ...) (/ desktop/filme/1/fileone,/ desktop/filme/1/filetwo,/ desktop/filme/1/filethree ...)在另一個文件夾中保存每個子文件夾的每個文件名的名稱/desktop/text/1.txt,/desktop/text/2.txt ...)。與txt工作正常,我希望它保存在Excel中,就像我將它保存在txt中一樣,因爲我使用xlwt。如果你有任何想法讓它與其他libray一起工作,我會嘗試它。文件名,目錄,文本,python文件夾子文件夾

這是保存TXT-S腳本:

import os 
import os.path 

for dirname, dirnames, filenames in os.walk(r"C:/Users/s/Desktop/filme/"): 

    for subdirname in dirnames: 

     foldere_filme = os.path.join(dirname, subdirname) 
     numarul_folderelor = foldere_filme.replace("C:/Users/s/Desktop/filme/", "") 
     print numarul_folderelor #1,2,3,4,5... 
     root_text = "C:/Users/s/Desktop/text/"+numarul_folderelor+".txt" 
     fisier_text = open(""+root_text+"", "w") 
     for filenames in os.listdir(foldere_filme): 
      numele_pt_text = filenames.replace(".avi", "") 
      print numele_pt_text 
      fisier_text.writelines(
           "Full Movie: \n\n\nwatch " 
           +numele_pt_text+" online free, \nwatch " 
           +numele_pt_text+" online") 
     fisier_text.close() 

我想用xlwt或其他任何東西,以適應它爲Excel創建:

import os 
import xlwt 
import os.path 

for dirname, dirnames, filenames in os.walk(r"C:/Users/s/Desktop/filme/"): 

    for subdirname in dirnames: 
     foldere_filme = os.path.join(dirname, subdirname) 
     numarul_folderelor = foldere_filme.replace("C:/Users/s/Desktop/filme/", "") 
     print numarul_folderelor #1,2,3,4,5... 
     wbk = xlwt.Workbook() 
     sheet = wbk.add_sheet('sheet 1', cell_overwrite_ok=True) 
     for filenames in os.listdir(foldere_filme): 
      numele_pt_text = filenames.replace(".avi", "") 
      print numele_pt_text 
      sheet.write(0,0,numele_pt_text) 
      sheet.write(1,0,numele_pt_text) 
      sheet.write(2,0,numele_pt_text) 
      sheet.write(3,0,numele_pt_text) 
      sheet.write(4,0,numele_pt_text) 
      sheet.write(5,0,numele_pt_text) 
      sheet.write(6,0,numele_pt_text) 
      sheet.write(7,0,numele_pt_text) 
      sheet.write(8,0,numele_pt_text) 
      sheet.write(9,0,numele_pt_text) 
      wbk.save("C:/Users/s/Desktop/text/"+numarul_folderelor+".xls") 

我會進行這項工作,但我會非常讚賞任何幫助。

+0

你的代碼工作正常,在我的電腦上.. –

+0

你應該追加模式,而不是寫模式打開文件。在寫模式下打開已存在的文件會刪除舊內容,因此每次在文本文件中寫入新文件名時,都會刪除舊名稱並寫入新名稱。這導致您只有文本文件中的最後一個文件名。將打開文件的行改爲'fisier_text = open(「」+ root_text +「」,「a」)' – halex

+0

@ halex:我不介意覆蓋它... @Rohit Jain:你的意思是什麼?它將每個子文件夾中的每個文件保存爲文件1.txt中的每個子文件夾Desktop/filme /(例如:/ filme/1/movieoane,movietwo,moviethree。/ filme/2/movieoane,movietwo,moviethree。)2.txt在文件夾/桌面/文本/? –

回答

2

但是,爲什麼要打開和關閉每行的文本文件?你可以做這樣的事情:

numarul_folderelor = foldere_filme.replace("C:/Users/s/Desktop/filme/", "") 
    print numarul_folderelor #1,2,3,4,5... 

    root_text = "C:/Users/s/Desktop/text/"+numarul_folderelor+".txt" 
    fisier_text = open(""+root_text+"", "w") 

    for filenames in os.listdir(foldere_filme): 
     numele_pt_text = filenames.replace(".avi", "") 
     print numele_pt_text 
     fisier_text.writelines(
         "Full Movie: \n\n\nwatch " 
         +numele_pt_text+" online free, \nwatch " 
         +numele_pt_text+" online") 
    fisier_text.close() 
+0

Dude ...我愛你,我愛你。有用。 –

+0

我重新編輯了這個問題......我想將它保存爲文本文件,但是在Excel中,我會對其進行處理,但是如果有人有解決方案,我會對它進行匹配。非常感謝你的幫助。 –

相關問題