⑴ 用python把文件夾下的所有文件包括文件夾裡面的文件都拷貝到同一個目錄下
defchange(path,path1):
forfinos.listdir(path):
ifos.path.isfile(path+os.path.sep+f):
a,b=os.path.splitext(f)
ifb!='.py':
shutil.(path+os.sep+f,path1)
elifos.path.isdir(path+os.path.sep+f):
change(path+os.sep+f,path1)
if__name__=='__main__':
path='D:\workspace\python'
path1='D:\workspace\python\filepath'
change(path,path1)
你好,我把change稍微改了一下,看看行不
⑵ python 復制文件
報錯多半是這句targetDir = targetDir+'/'+os.path.split(sourceDir)[1]
你這句把本來的targetDir覆蓋了,導致後面的文件的目標文件夾被修改
發個我寫的吧,參考下吧
defFile(sourceDir,targetDir):
ifnotos.path.exists(targetDir):
os.makedirs(targetDir)
forfilenameinos.listdir(sourceDir):
path=os.path.join(sourceDir,filename)
ifos.path.isdir(path):
targetSubDir=os.path.join(targetDir,filename)
File(path,targetSubDir)
else:
targetPath=os.path.join(targetDir,filename)
open(targetPath,'wb').write(open(path,'rb').read())
⑶ 如何用python復制粘貼文件到指定文件夾,windows
import
shutil
#復制文件
shutil.file('listfile.py',
'd:/test.py')
#復制目錄
shutil.tree('d:/temp',
'c:/temp/')
#其餘可以參考shutil下的函數
⑷ 用python如何將文件夾內部分指定文件名的文件復制到目標文件夾,大佬求教!
import glob
import shutil
def _file(names,old_name,new_name):
for name in names:
filename = name.split("\\")[-1]
#filename:從路徑中截取文件名
shutil.file(old_name + filename, new_name + filename)
files = glob.glob(r'D:/A/1*.txt')
#files : 搜索得到的符合條件(帶有1開頭的txt)的文件列表
old_path = r'D:/A/'
new_path = r'D:/B/'
_file(files,old_path,new_path)
⑸ python怎麼訪問共享目錄並復制文件到本地
這個需要知道你的共享目錄和你的主機通信是通過什麼協議的
比如:ftp還是ssh,sftp等等
協議不同,代碼不一樣
⑹ python中怎樣將文件拷貝到指定的目錄下
用readline
inputFile = open("inputFile.txt", "r")
print "Name of the input file: ", inputFile.name;
outputFile = open("outputFile.txt", "a");
print "Name of the output file: ", outputFile.name;
allLines = inputFile.readlines();
for eachLine in allLines:
print "current line content: %s" % (eachLine);
#append into output file
outputFile.write(eachLine);
inputFile.close();
outputFile.close();
⑺ python 中如何實現對文件的復制、粘貼
file類中沒有提供專門的文件復制函數,因此只能通過使用文件的讀寫函數來實現文件的復制。這里僅僅給出範例:
src = file("myfile.txt", "w+")
temp = ["hello world! \n"]
src.writelines(temp)
src.close()
src = file("myfile.txt", "r+")
des = file("myfile2.txt", "w+")
des.writelines(src.read())
src.close()
des.close()
shutil模塊是另一個文件,目錄的管理介面,提供了一些用於復制文件,目錄的函數。file()函數可以實現文件的拷貝,聲明如下:
file(src, des)
文件的剪切可以使用move()函數模擬,聲明如下:
move(src,des)
功能:移動一個文件或者目錄到指定的位置,並且可以根據參數des重命名移動後的文件。
⑻ linux系統拷貝windows電腦共享的文件,用python怎麼實現
裝個samba 一般來說,安裝samba後,有一個smb.conf(配置文件)的例子,修改一下就好了。 WINDOWS下的網上鄰居使用是NetBIOS協議,LINUX下使用功能強大的SAMBA可以實現與WINDOWS機子共享。下面具體就我的理解具體說一下。 首先當然是你必須安裝了SAMBA #apt-get install samba samba-common smbclient smbfs 其實使用SAMBA分成兩個方面,一個是linux機子上的資源給WINDOWS機子瀏覽,再一個是使用LINUX 機子瀏覽WINDOWS 的網上鄰居。現在假設使用WINDOWS的機子的IP是10.0.0.10,共享目錄是music,用戶名是:share,密碼是:yeah;使用 LINUX機子的IP是:10.0.0.20 一 . 從LINUX上獲取WINDOWS文件的基本方法(有3種方法) 1. smbmount---普通用戶就可以使用的命令 掛載文件 #smbmount //10.0.0.10/music /home/user/music -o "username=share,password=yeah" 主意與下面的mount不一樣的是-o後面一定要引號 卸載已經掛載的文件 #smbumount /home/user/music 2. mount---超級用戶才有的許可權,但效果與上面一樣 掛載文件 #mount -t smbfs -o username=share,password=yeah //10.0.0.10/music /home/user/music 卸載文件 #umount /home/user/music 註:以上兩個命令掛載要想顯示中文,必須添加如下參數 codepage=cp936,iocharset=utf8(與linux機的本地環境一致,如是gb2312,這兒也要寫成:iocharset=gb2312 ;codepage要與遠程一致,是指定源代碼文件的代碼頁---一個內>部表,操作系統用它將符號(字母、數字和標點)映射為字元編號。如932 代表日本漢字,950代表繁體中文字元集,說明一下就是codepage是cp936,而不是936,否則在有時顯示漢字還是亂碼。 3. 使用smbclient訪問Windows資源 它是一個類似於ftp操作方式,通過遠程操作的方式進行文件傳遞的軟體。為了獲得網路上可以訪問的計算機列表,首先需要使用 smbclient來獲得一個Windows計算機共享出來的資源,這需要使用-L參數訪問IPC #smbclient -L 192.168.1.150 -N 或者機器名 #smbclient -L hit -N 如果不清楚一個Windows計算機的NetBIOS名字,可以使用nmblookup先來解析NetBIOS名字 #nmblookup hit (若瀏覽網上鄰居用:#nmblookup -T "*") 當上面查到資源後,就可以用smbclient登陸了 #smbclient \\hit\music yeah -U share (其中yeah是密碼,share是用戶名) 執行smbclient命令成功後,進入smbclient環境,出現提示符:smb: >,然後就可以執行和ftp命令中相似的命令:cd, lcd, get ,mget ,put ,mput等,用法就跟FTP一樣了。 註:要想使用smbclient來訪問windows時,也需要使用UNC來標識Windows資源的位置。此時就需要了解 WindowsUNC在Unix>下進行表示的不同之處。不同之處在於Unix的shell下反斜線為特殊字元,它被定義為轉義恢復字元,表示將一些轉義字元恢復為其本身字元的意義。因此必須使用兩個反斜線才能等同於一個反斜線。因此一個UNC實際使用時應使用雙倍的反斜線。 若想使用基於圖形的客戶端:感覺比較好用的是tksmb和smb4k(KDE) 若只是以上使用不用配置/etc/samba/smb.conf,也不用啟動 samba 服務,甚至可以不裝samba程序 二. WINDOWS機子訪問在LINUX上的資源 需要使用兩個進程:nmbd smbd, 前者nmbd是提供WINDOWS瀏覽,後者smbd是針對WINDOWS瀏覽後的登陸等服務。 首先需要說明的是,當samba 還沒有添加用戶時,WINDOWS機子是登陸不上來的,所以第一步就是添加用戶: # smbpasswd -a myfirst 需要說明的是這個用戶必須是系統用戶,否則回提示 Failed to initialise SAM_ACCOUNT for user myfirst. Does this user exist in the UNIX password database ? Failed to modify password entry for user myfirst 當然可以對用戶進行映射,見後面說明。 接著就簡單了,就是配置/etc/samba/smb.conf,見下面一個配置以及相應說明,拷貝後您只需要稍稍修改一些你自己的信息就可以使用了(參考了前人的說明) /etc/samba/smb.conf文件 ## /etc/samba/smb.conf配置文件有三個重要的節:[global],[homes],[public] #Global (全局)參數,該部分設置整個系統的規則,定義了一些公共變數。 [global] netbios >#定義Windows系統「網上鄰居」中所見的機器名。 workgroup = workgroup #定義主機所在網路上所屬的NT域名或者工作組名稱 server string = FunField #對主機的說明信息,預設是:Samba Server hosts allow = 192.168.1. 192.168.3. #它允許設置哪些機器可以訪問samba伺服器 guest account = nobody invalid users = root #定義smb用戶名稱。 security = user #定義訪問許可權。訪問許可權由低到高有三種:share、user和server。其中share安全級別最低,user模式要求連接時輸入用戶名和口令 encrypt passwords = true #設置是否需要加密口令。因為Windows系列默認採用加密口令傳輸,而Linux默認採用非加密口令傳輸,為保證smb網路用戶的正常登錄,在user安全級下設置為加密,在share 安全級下可不設。 smb passwd file = /etc/samba/smbpasswd #由命令cat /etc/passwd mksmbpasswd.sh > /etc/samba/smbpasswd產生。 interfaces = 192.168.1.50/24 #配置smb服務所使用的網卡IP以及子網掩碼,如果有兩個以上網卡,要全部列出。 name resolve order = host dns bcast #設定smb服務時,從機器netbios名稱到IP地址的解析方式,默認順序為host lmhosts wins bcast。如果區域網內有DNS,可設置為host dns bcast。 wins support = no #設置是否有wins支持。 public = yes #為yes時,「網上鄰居」中可見該資源,否則不可見。 browseable = yes #為yes時,「網上鄰居」中可見該資源,否則不可見。 #printing = bsd # 指定Linux使用哪個列印機守護進程(bsd、sysv、hpux、aix、qnx、plp),同時向samba說明命令lpr和lpq的預設值。 #printcap ># 定義了列印配置文件所處的位置。 load printers = no # 表明是否載入printcap 定義的所有列印機以供瀏覽。 log file = /var/log/samba/log.%m # 定義日誌文件 max log 'size' = 1000 #日誌文件最大1000k (單位是KB) username map = /etc/samba/smbuser #允許管理員指定一個映射文件,該文件包含了在客戶機和伺服器之間進行用戶映射的信息。 用戶映射經常在windows 和linux 主機間進行。 兩個系統擁有不同的用戶賬號,用戶映射的目的是將不同的用戶映射成為一個用戶,便於共享文件。 #*********************************************************************# [homes] #該部分通常定義了Linux機器上共享的目錄資源,其名字可以由用戶確定。段中的設置控制了每一個用戶目錄的共享許可權。 comment = Home Directories #設定在瀏覽本機資源時,出現在指定資源旁邊的字元串。 browseable = yes #控制一項服務是否能夠出現在網上鄰居中,no意味著這個目錄將在瀏覽時顯示為要驗證的用戶名稱,yes則顯示 homes 和要驗證的用戶名稱的共享目錄。 writable = yes #控制是否允許通過驗證的用戶對主目錄有寫入的許可權,但最終取決於該目錄的 Unix 許可權。無論 Unix 的許可權怎樣, 設置 writable = no 後, 主目錄只能是只讀的。 create mask = 0700 directory mask = 0700 #若上面是可寫的,則設置寫文件和目錄時的屬性 #******************************************************************# [public] #用來指定某一特定用戶組或者用戶擁有訪問許可權的目錄配置分,配置共享目錄部分 comment = Public Stuff # 說明部分 path = /home/samba #共享的Linux目錄 writable = no #寫許可權 printable = no #列印許可權 用於用戶映射的文件/etc/samba/smbuser # smb.conf中全局參數 「username map」 指定的映射文件 root = admin administrator #Map Windows admin to root hawk = girl #Map the member of girl to hawk snake = boy # 等號左邊是單獨的Linux賬號,等號右邊是要映射的賬號列表。伺服器逐行分析映射文件,如果提供的賬號和某行有右側列表中的賬號匹配,就把它替換為等號左邊的賬號。
⑼ python怎麼實現文件的復制
給你看一段樣例代碼
defFile(src,des):
srcFp=open(src,"r")
desFp=open(des,"w")
ch=srcFp.read(1)
whilech!="":
desFp.write(ch)
ch=srcFp.read(1)
srcFp.close()
desFp.close()
File("f:\new.txt","f:\test.txt")