【笔记】python os的使用 文件批量重命名 批量移动文件 将png转jpg代码
對于os的使用總是容易混淆,這里記錄一下。
print(os.listdir(os.path.join("C:/Users/pic"))) tagg = pandas.read_csv("C:/Users/number.csv") print(tagg.values[0][2])
( 1 ) os.path . dirname : 用于返回一個目錄的目錄名,輸入參數為文件的目錄。os.path.dirname(file)返回腳本的路徑,
( 2) os . path . exists : 用于測試輸入參數指定的文件是否存在。
( 3 ) os.path.isdir : 用于測試輸入參數是否是目錄名。
( 4) os . path.isfile : 用于測試輸入參數是否是一個文件。
( 5) os.path.samefile : 用于測試兩個輸入的路徑參數是否指向同一個文件。
( 6) os.path.split : 用于對輸入參數中的目錄名進行分割,返回一個元組,該元組由目
(7)os.path.splitext()將文件名和擴展名分開
貓狗二分類:
獲取一個批次的數據井迸行數據預覽和分析,代碼如下:
X_example , y_example = next(iter(dataloader [ ” train ” ]))
X_ example 是Tensor 數據類型的變量,因為做了圖片大小的縮放變換,所以現在圖片的大小全部是6 4 × 6 4 了, 那么X_example 的維度就是( 16 , 3 , 64, 64), 16 代表在這
個批次中有16 張圖片; 3 代表色彩通道數, 因為原始圖片是彩色的,所以使用了R 、G 、B 這三個通道: 64 代表圖片的寬度值和高度值。
y_example 也是Tensor 數據類型的變量,不過其中的元素全部是0 和1 。為什么會出現0 和1 ?這是因為在進行數據裝載時已經對dog 文件夾和cat 文件夾下的內容進行了獨熱編碼
os.path.abspath(path) 返回絕對路徑
os.path.basename(path) 返回文件名
os.path.commonprefix(list) 返回list(多個路徑)中,所有path共有的最長的路徑
os.path.dirname(path) 返回文件路徑
os.path.exists(path) 如果路徑 path 存在,返回 True;如果路徑 path 不存在,返回 False。
os.path.lexists 路徑存在則返回True,路徑損壞也返回True
os.path.expanduser(path) 把path中包含的""和"user"轉換成用戶目錄
os.path.expandvars(path) 根據環境變量的值替換path中包含的"name"和"name"和"name"和"{name}"
os.path.getatime(path) 返回最近訪問時間(浮點型秒數)
os.path.getmtime(path) 返回最近文件修改時間
os.path.getctime(path) 返回文件 path 創建時間
os.path.getsize(path) 返回文件大小,如果文件不存在就返回錯誤
os.path.isabs(path) 判斷是否為絕對路徑
os.path.isfile(path) 判斷路徑是否為文件
os.path.isdir(path) 判斷路徑是否為目錄
os.path.islink(path) 判斷路徑是否為鏈接
os.path.ismount(path) 判斷路徑是否為掛載點
os.path.join(path1[, path2[, …]]) 把目錄和文件名合成一個路徑
os.path.normcase(path) 轉換path的大小寫和斜杠
os.path.normpath(path) 規范path字符串形式
os.path.realpath(path) 返回path的真實路徑
os.path.relpath(path[, start]) 從start開始計算相對路徑
os.path.samefile(path1, path2) 判斷目錄或文件是否相同
os.path.sameopenfile(fp1, fp2) 判斷fp1和fp2是否指向同一文件
os.path.samestat(stat1, stat2) 判斷stat tuple stat1和stat2是否指向同一個文件
os.path.split(path) 把路徑分割成 dirname 和 basename,返回一個元組
os.path.splitdrive(path) 一般用在 windows 下,返回驅動器名和路徑組成的元組
os.path.splitext(path) 分割路徑,返回路徑名和文件擴展名的元組
os.path.splitunc(path) 把路徑分割為加載點與文件
os.path.walk(path, visit, arg) 遍歷path,進入每個目錄都調用visit函數,visit函數必須有3個參數(arg, dirname, names),dirname表示當前目錄的目錄名,names代表當前目錄下的所有文件名,args則為walk的第三個參數
os.path.supports_unicode_filenames 設置是否支持unicode路徑名
批量重命名
if __name__ == '__main__':path_root = os.getcwd()Path= 'C:\\pic\\3.32\\'img_dir = os.listdir(Path)for img in img_dir:if img.endswith('.txt') and len(img.split('.'))>2:dir = os.path.join(Path,img)newimg=img.split('.')[0]+'.'+img.split('.')[2]old = os.path.join(Path, newimg)os.rename(dir,newimg)##png轉jpg
def PNG_JPG(PngPath):img = cv.imread(PngPath, 0)w, h = img.shape[::-1]infile = PngPathoutfile = os.path.splitext(infile)[0] + ".jpg"img = Image.open(infile)img = img.resize((int(w / 2), int(h / 2)), Image.ANTIALIAS)try:if len(img.split()) == 4:# prevent IOError: cannot write mode RGBA as BMPr, g, b, a = img.split()img = Image.merge("RGB", (r, g, b))img.convert('RGB').save(outfile, quality=70)os.remove(PngPath)else:img.convert('RGB').save(outfile, quality=70)os.remove(PngPath)return outfileexcept Exception as e:print("PNG轉換JPG 錯誤", e)批量移動文件到指定文件夾
if __name__ == '__main__':os.mkdir('C:\\pic\\3.32\\txt')path_root = os.getcwd()Path= 'C:\\pic\\3.32\\'img_dir = os.listdir(Path)for img in img_dir:if img.endswith('.txt'):dir = os.path.join(Path,img)shutil.move(dir,'C:\\pic\\3.32\\txt')給txt文件的每一行前面加相同內容
ff = open('nny.txt', 'w')with open('nn.txt', 'r') as f:line = f.readlines()for line_list in line:line_new = 'data/custom/images/' + line_listff.write(line_new)總結
以上是生活随笔為你收集整理的【笔记】python os的使用 文件批量重命名 批量移动文件 将png转jpg代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【练习】c++分别用链队列和普通队列输出
- 下一篇: 【练习】归并和冒泡两种方法c++将两个无