Ⅰ 求解一道Python編程題
Ⅱ 如何用python批量改文件名
基本程序
1
引入os模塊(python中操作文件的模塊)。
2
定義修改名稱的函數rename。
在rename函數中定義一個儲存路徑的弊燃變數path,並將要寬培修改文件名的文件夾的路徑賦值給該變數。
3
繼續向函數中添加功能代碼
4
最後調用這個rename函數這個腳本就寫完了。執行租巧虛這個文件,就會將文件夾下所有的文件改成 這里是你要改的文件名.後綴名 這樣的格式,顯然我們一般情況下不是需要這樣的效果的。下面我列出了一些常用的改文件名的方法。
5
列出代碼,便於復制
import os;
def rename():
path="這里替換為你的文件夾的路徑";
filelist=os.listdir(path)#該文件夾下所有的文件(包括文件夾)
for files in filelist:#遍歷所有文件
Olddir=os.path.join(path,files);#原來的文件路徑
if os.path.isdir(Olddir):#如果是文件夾則跳過
continue;
filename=os.path.splitext(files)[0];#文件名
filetype=os.path.splitext(files)[1];#文件擴展名
Newdir=os.path.join(path,"這里是你要改的文件名"+filetype);#新的文件路徑
os.rename(Olddir,Newdir);#重命名
rename();
END
添加改名規律
1
(1).序號依次遞增型
import os;
def rename():
count=0;
path='C:\\Users\\admin\\Desktop\\test';
filelist=os.listdir(path)#該文件夾下所有的文件(包括文件夾)
for files in filelist:#遍歷所有文件
Olddir=os.path.join(path,files);#原來的文件路徑
if os.path.isdir(Olddir):#如果是文件夾則跳過
continue;
filename=os.path.splitext(files)[0];#文件名
filetype=os.path.splitext(files)[1];#文件擴展名
Newdir=os.path.join(path,str(count)+filetype);#新的文件路徑
os.rename(Olddir,Newdir);#重命名
count+=1;
rename();
2
(2).批量取分隔符前面/後面的名稱
import os;
def rename():
path='C:\\Users\\admin\\Desktop\\test';
filelist=os.listdir(path)#該文件夾下所有的文件(包括文件夾)
for files in filelist:#遍歷所有文件
Olddir=os.path.join(path,files);#原來的文件路徑
if os.path.isdir(Olddir):#如果是文件夾則跳過
continue;
filename=os.path.splitext(files)[0];#文件名
filetype=os.path.splitext(files)[1];#文件擴展名
if filename.find('---')>=0:#如果文件名中含有---
Newdir=os.path.join(direc,filename.split('---')[0]+filetype);
#取---前面的字元,若需要取後面的字元則使用filename.split('---')[1]
if not os.path.isfile(Newdir):
os.rename(Olddir,Newdir);
rename();
Ⅲ IS是啥模塊+ST是啥模塊+AL是啥模塊
1 導入模塊
1.1 問題
本案例要求先仔昌編寫一個star模塊,主要要求如下:
建立工作目錄 ~/bin/
創建模塊文件 ~/bin/star.py
模塊中創建pstar函數,實現列印50個星號的功能
然後練習導入模塊,調用模塊中的函數:
在交互解釋器中導入模塊
調用模塊的函數
1.2 方案
使用vim當作文本編輯器編寫python腳本,使用RHEL6系統中自帶的python解釋器載入模塊。
注意,模塊及函數在後續課程中有詳細介紹,這里只是因為經常要用到導入模塊,所以需要大致了解一下。
模塊支持從邏輯上組織python代碼。當代碼量變得相當大的時候,最好把代碼分成一些有組織的代碼段,前提是保證它們的彼此交互。
這些代碼段是共享的,所以python允許調入一個模塊,允許使用其他模塊的屬性來利用之前的工作成果,實現代碼重用。這個把其他模塊中屬性附加到你的模塊中的操作叫做導入(import)。
給定一個模塊名之後,只可能有一個模塊被導入到python解釋器中,所以在不同模塊間不會出現名稱交叉現象;每個模塊都定義了它自己的唯一的名稱空間,訪問一個模塊的屬性可以使用句點表示法,比訪問star模塊中的pstar函數的寫法為:star.pstar()。
1.3 步驟
實現此案例需要按照如下步驟進行。
步驟一:創建目錄結構
linux在執行命令時,它會到PATH環境變數定義的路徑中去查找,如果查到則執行,如果查不到則提示命令找不到。
為了使得編寫的腳本在任意位置可以直接執行,並支持按TAB鍵補齊,最好將巧掘命令放到PATH環境變數定義的路徑中。
在Linux系統中,每個用戶的家目錄下的bin目錄,默認在PATH環境變數中,但是系統默認並沒有創建該目錄。
[root@py01 ~]# echo \$PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin
2)根據PATH變數內容創建bin目錄
[root@py01 ~]# mkdir /root/bin
步驟二:創建模塊文件
1)創建模塊文件
python的模塊名就是腳本文件名去掉.py的擴展名,所以star模塊的文件名就是star.py。
在創建文件時,不要使用python已有的模塊名。因為在import模塊時,如果自己創建的模塊文件和python自帶的模塊重名,那麼,用戶自己創建的模塊將被導入,用戶也就無法使用python自身的模塊了。
判斷python是否擁有某個模塊,最簡單的辦法就是,進入到python交互解釋器中,然後執行import命令,如果提示ImportError則表示python默認沒有該模塊。
[root@py01 ~]# cd bin
[root@py01 ~]# vim star.py
2)編寫pstar函數
像shell本一樣,python腳本文件的第一行也是解釋器。
在python中,使用def定義函數,def後面緊跟函數名,函數名後面是一對圓括弧,圓括弧包含可選的參數。
需要注意的是,()並不是函數名的一部分,另外最後不要丟掉冒號。在python中,如果一個關鍵字後面有子語句塊,那麼該關鍵字的行尾都需要加冒號。
函數體部分(代碼組)必須縮進,一般縮進4個空格,而且所有的子語句必須縮進相同的空白。
函數定義只是說有這樣的功能,並不執行。所以該程序文件如果直接以腳本的方式執行,那麼它不會產生任何輸出。
#!/usr/bin/env python
def pstar():
print '*' * 50
步驟三:導入模塊並測試
在這里需要注意的是,需要在模塊文件所在的目錄下打開交互解釋器。因為python在導入模塊時會在固定的幾個位置去搜索模塊,如果找到則導入,否則將出錯。當前的工作目錄也是python在搜索模塊時會查找念寬扒的路徑。
[root@py01 bin]# python
Python 2.6.6 (r266:84292, Oct 12 2012, 14:23:48)
[GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux2
Type "help", "right", "credits" or "license" for more information.
>>> import star
解釋器需要知識執行的是哪個模塊中的函數,所以寫法應該是:「模塊.函數」。
注意,函數名後面的圓括弧不要丟掉,python調用函數使用圓括弧,表示執行該函數的意思。如果沒有圓括弧,只是引用,不調用,也就是不會執行該函數。
>>> star.pstar()
**************************************************
文章鏈接:https://www.cnblogs.com/fanfanfanlichun/p/8723450.html
Ⅳ python源代碼程序文件擴展名
python源代碼程序文件擴展名就是:
.py
Ⅳ python文件是以什麼為擴展名的文件
..py - 常規腳本
.py3 - Python3腳本(Python3腳本通常以.py而不是.py3結尾,很少使用)
.pyc - 編譯的腳本(位元組碼)
.pyo - 優化的pyc位元組碼文件(從Python3.5開始,Python將只使用pyc而不是pyo和pyc)
.pyw - 用pythonw.exe執行的Windows的Python腳本
.pyx - 將Cython src轉換為C/C++
.pyd - 作為Windows DLL創建的Python腳本
.pxd - 相當於C/C++頭文件的Cython腳本
.pyi - MyPy存根
.pyi - 存根文件(PEP 484)
.pyz - Python腳本歸檔(PEP 441)(這是一個包含標准Python腳本頭之後的二進制形式的壓縮Python腳本(ZIP)的腳本)
.pywz - 用於MS-Windows的Python腳本歸檔(PEP 441)(這是一個包含標准Python腳本頭之後的二進制形式的壓縮Python腳本(ZIP)的腳本)
Ⅵ 如何用python刪除特定文件夾
#!/usr/bin/env python
import os
import shutil
delList = []
delDir = "/home/test"
delList = os.listdir(delDir )
for f in delList:
filePath = os.path.join( delDir, f )
if os.path.isfile(filePath):
os.remove(filePath)
print filePath + " was removed!"
elif os.path.isdir(filePath):
shutil.rmtree(filePath,True)
print "Directory: " + filePath +" was removed!"
shutil是一個高層次的文件操作模塊。True參數表示ignore_errors(忽略拷貝時候的錯誤)。
類似於高級,而且主要強大之處在於其對文件的復制與刪除操作更是比較支持好。
[附] os模塊(庫)的使用
有關文件夾與文件的查找,刪除等功能 在 os 模塊中實現。
一、取得當前目錄
#1.1
s = os.getcwd()
# s 中保存的是當前的執行目錄(即執行所在的文件夾)
[注意]
如果是要獲得程序運行的當前目錄所在位置,那麼可以使用os模塊的os.getcwd()函數。
如果是要獲得當前執行的腳本的所在目錄位置,那麼需要使用sys模塊的sys.path[0]變數或者sys.argv[0]來獲得
#1.2
import os
import time
folder = time.strftime(r"%Y-%m-%d_%H-%M-%S",time.localtime())
os.makedirs(r'%s/%s'%(os.getcwd(),folder))
二、更改當前目錄
os.chdir( "/root/123")
#將當前目錄設為 "/root/123"
#說明: 當指定的目錄不存在時,引發異常。
三、將一個路徑名分解為目錄名和文件名兩部分
fpath , fname = os.path.split( "你要分解的路徑")
例如:
a, b = os.path.split( "/root/123/test.txt" )
print a
print b
顯示:
/root/123/
test.txt
四、分解文件名的擴展名
fpathandname , fext = os.path.splitext( "你要分解的路徑")
例如:
a, b = os.path.splitext( "/root/123/test.txt" )
print a
print b
顯示:
/root/123/test
.txt
五、判斷一個路徑( 目錄或文件)是否存在
b = os.path.exists( "你要判斷的路徑")
返回值b: True 或 False
六、判斷一個路徑是否文件
b = os.path.isfile( "你要判斷的路徑")
返回值b: True 或 False
七、判斷一個路徑是否目錄
b = os.path.isdir( "你要判斷的路徑")
返回值b: True 或 False
八、獲取某目錄中的文件及子目錄的列表
L = os.listdir( "你要判斷的路徑")
例如:
L = os.listdir( "/root/123" )
print L
顯示 :
['test.txt', 'test.py','python']
#這裡面既有文件也有子目錄
九、創建子目錄
os.makedirs( path ) # path 是"要創建的子目錄"
例如:
os.makedirs("/root/123")
調用有可能失敗,可能的原因是:
(1) path 已存在時(不管是文件還是文件夾)
(2) 驅動器不存在
(3) 磁碟已滿
(4)磁碟是只讀的或沒有寫許可權
十、刪除子目錄
os.rmdir( path ) # path: "要刪除的子目錄"
產生異常的可能原因:
(1) path 不存在
(2) path 子目錄中有文件或下級子目錄
(3) 沒有操作許可權或只讀
十一、刪除文件
os.remove( filename ) # filename: "要刪除的文件名"
產生異常的可能原因:
(1) filename 不存在
(2) 對filename文件, 沒有操作許可權或只讀。
十二、文件改名
os.name( oldfileName, newFilename)
產生異常的原因:
(1) oldfilename 舊文件名不存在
(2) newFilename 新文件已經存在時,此時,您需要先刪除 newFilename 文件。
Ⅶ 頭歌python找不到文件擴展名怎麼處理
很多的小夥伴最近在使用電腦的時候提示python找不到文件用cmd也還是無法顯示,那麼這是怎麼一回事呢?下面就為大家帶來了解決的教程,一起來看看吧。
python找不到文件怎麼辦:
1、點擊進入「此電腦」。
2、右擊「此電腦」點擊「屬性」。
3、點擊左側「高級系統設置」。
4、選擇「高級」點擊「環境變數」。
5、雙擊「path」。
6、點擊「新建」。
7、將python的路徑安裝進去即可。
Ⅷ pycharm修改py後綴
修改方法如下:
1.打開PyCharm軟猛叢賣件並打開需要修鄭告改後綴名的Python文件。
2.在文件名上右鍵單擊,然後選擇Refactor(重構)選項。
3.在下拉菜單中選擇Rename(重命名)選項。
4.在彈出的RenameFile窗口中,將文件名的後綴名部分(.py)替換為您需要的後綴名。
5.點擊Refactor按鈕,PyCharm將自動重命名文件並更新所有引用該文件的代碼中的文件名。
PyCharm是一種PythonIDE,帶有一整套可以幫助用枝逗戶在使用Python語言開發時提高其效率的工具。
Ⅸ 如何讓python程序在命令行不輸入擴展名就能運行[已解決]
打開我的電腦,茄族工具
>>
文件夾選碧做項
>>
文件類型裡面有py的擴展名和對應的關聯。實在不行你重裝下python,我的用的是activepython,裝好之後就自動關聯了,py腳本圖片都變成了顫慧弊python圖標了
Ⅹ 求助一個python腳本用於批刪除同文件夾下的同名不同後綴的文件
以下代碼在MacOS系統下測試通過 使用前請自行配置需要操作的文件夾路徑(dir_path),默認操作文件夾為腳本所在路徑。提示刪除操作時,輸入y或者Y會刪除文件,直接回車或者輸入其他任意字元為跳過。具體實現代碼如下,縮進參考截圖:
import glob
from pathlib import Path
dir_path = '.'
files = glob.glob('*.ARW')
for i in files:
is_exist = Path(Path(i).stem + '.JPG')
if not is_exist.is_file():
verify = input("{} 對應.JPG文件已被刪除,請選擇操作Y/N:".format(i))
if verify.lower() == 'y':
try:
Path(i).unlink()
print("成功刪除文件 {}".format(i))
except OSError as e:
print("異常:文件 {} 未被刪除!".format(i))
else:
print("跳過文件 {}".format(i))
continue
else:
print("操作完成,再次運行腳本可重新檢測!")
測試輸出:
0009.ARW 對應.JPG文件已被刪除,請選擇操作Y/N:n
跳過文件 0009.ARW
0008.ARW 對應.JPG文件已被刪除,請選擇操作Y/N:y
成功刪除文件 0008.ARW
0001.ARW 對應.JPG文件已被刪除,請選擇操作Y/N:y
成功刪除文件 0001.ARW
操作完成,再次運行腳本可重新檢測!