1.操作文件
import os
# 重命名文件
print(os.rename('cpx.txt','cpx1.txt'))
# 絕對路徑,就是從盤符(如:C\D\E\F盤開始一路找到對應的文件),使用絕對路徑刪除文件
# print(os.remove(r'D:\PycharmProjects\untitled\IoVersusOs\cpx1.txt'))
# 相對路徑,基於當前文件寫路徑,cpx2.txt和當前開發文件同一個路徑
# 刪除文件
os.remove("cpx2.txt")
2.操作目錄
import os
# 使用相對路徑創建目錄
os.mkdir("md")
# 使用絕對路徑創建目錄,只適合在自己的電腦,因爲不知道別人的電腦,絕對路徑是什麼樣的
os.mkdir(r"D:\PycharmProjects\untitled\IoVersusOs\md1")
# 獲取目錄
print(os.getcwd())
# 刪除目錄
os.rmdir("md")
# 刪除非空的目錄
import shutil
shutil.rmtree("md1")
3.獲取操作系統信息
# 獲取操作系統 posix , nt , java, 對應linux/windows/java虛擬機
print(os.name) # 輸出結果 nt
# 獲取當前操作系統的環境變量
print(os.environ)
4.獲取文件或者文件夾的信息
# 獲取指定路徑下所有文件夾和文件
print(os.listdir("../IoVersusOs")) # 輸出結果 ['IO.py', 'md', 'md1', 'my.json', 'OS.py']
# 查看文件和文件夾的絕對路徑
print(os.path.abspath("../IoVersusOs")) # 輸出結果 D:\PycharmProjects\untitled\IoVersusOs
# 路徑的拼接
pathStr = os.path.join(r'D:\PycharmProjects', 'untitled', 'IoVersusOs')
print(pathStr) # 輸出結果 D:\PycharmProjects\untitled\IoVersusOs
# 拆分路徑
splitPath = os.path.split(r'D:\PycharmProjects\untitled\IoVersusOs')
print(splitPath) # 輸出結果 ('D:\\PycharmProjects\\untitled', 'IoVersusOs')
# 獲取文件擴展名
fileExtension = os.path.splitext('OS.py')
print(fileExtension) # 輸出結果 ('OS', '.py')
# 判斷該路徑是否爲文件夾
print(os.path.isdir(r'D:\PycharmProjects\untitled\IoVersusOs')) # 輸出結果True
# 判斷該路徑是否爲文件
print(os.path.isfile(r'D:\PycharmProjects\untitled\IoVersusOs\OS.py')) # 輸出結果True
# 獲取文件大小
print(os.path.getsize(r'D:\PycharmProjects\untitled\IoVersusOs\OS.py')) # 輸出結果 2051
# 獲取當前路徑的文件夾名稱
print(os.path.dirname(r'D:\PycharmProjects\untitled\IoVersusOs\OS.py')) # 輸出結果 D:\PycharmProjects\untitled\IoVersusOs
# 獲取文件或者文件夾或者文件的基礎名稱
print(os.path.basename(r'D:\PycharmProjects\untitled\IoVersusOs\OS.py')) # 輸出結果 OS.py
5.拷貝文件
def fileCopy(srcPath, desPath):
# 判斷文件是否存在和是不是文件
if os.path.exists(srcPath):
if not os.path.isfile(srcPath):
print('{}不是文件'.format(srcPath))
return
else:
print('文件{}不存在'.format(srcPath))
return
# 打開源文件和目標文件
srcFile = open(srcPath, 'rb')
desFile = open(desPath, 'wb')
# 獲取源文件的大小,以字節爲單位
size = os.path.getsize(srcPath)
while size > 0:
# 讀取1024字節
content = srcFile.read(1024)
# 寫入
desFile.write(content)
size -= 1024
# 關閉文件
srcFile.close()
desFile.close()
if __name__ == "__main__":
fileCopy(r'cpx.txt','cpx1.txt')