Python實驗一:文件&目錄操作

**

本次實驗旨在加深對文件操作的熟悉度。

**

#!/usr/bin/python3
# -*- coding:UTF-8 -*-
import shutil;
import os;

# 【文件路徑操作】
# 生成路徑方法
str = os.path.join('usr', 'bin', 'spam');
# print(str); # usr\bin\spam

# 獲取當前工作目錄
current_dir = os.getcwd();
# print(current_dir);# E:\Python3Excute

# 切換當前工作目錄
# os.chdir('E:/');
# ch_dir = os.getcwd();
# print(ch_dir);  # E:\

# 創建新的文件夾:第一參數表路徑,第二個參數表權限
os.makedirs('test_dir', 0o777, True);

# 絕對路徑返回:True,相對路徑:False
path = os.path.isabs('E:\\');
# print(os.path.abspath('.\\ss'));  # 返回字符串的絕對路徑(即當前文件的絕對路徑)

path_1 = 'E:\\Python3Excute\\copy.py';
# print(os.path.basename(path_1));  # copy.py; 返回一個字符串,包含path參數中最後一個斜槓之【後】的所有內容
# print(os.path.dirname(path_1));  # E:\Python3Excute; 返回一個字符串,包含path參數中最後一個斜槓之【前】的所有內容
# print(os.path.split(path_1));  # ('E:\\Python3Excute', 'copy.py') ;獲取一個路徑的目錄名稱和基本名稱,以元組的形式返回
# print(path_1.split(os.path.sep));# ['E:', 'Python3Excute', 'copy.py']; 以列表的形式返回【相當於字符串分割】

path_2 = 'E:\\Python3Excute\\2.txt';  # 存在
path_3 = 'E:\\Python3Excute\\3.txt';
# print(os.path.getsize(path_2)); # 50; 返回文件中的字節數

# 【文件檢查:文件有效性檢查】
# print(os.listdir('E:\\Python3Excute')); #[2.txt,A.txt....]; 返回當前目錄下的文件名稱(包含目錄)
# print(os.path.exists(path_3));  # False; 檢查文件或者目錄是否存在(存在:True,否則:False)
# print(os.path.isdir(path_2));  # 檢查是否爲目錄
# print(os.path.isfile(path_2));  # 檢查是否爲文件

# 【文件操作:讀寫操作】
# fp=open(path_2);
# print(fp.read()); # 輸出文本文件所有內容
# print(fp.readline()); # 輸文s本文件第一行內容(可以通過循環的方式全部讀取)
# print(fp.readlines()); # ['Hello World\n', 'Python\n', '12344'] 以列表形式輸出文本文件所有行內容

# fp3=open(path_3,'a');# a:追加模式,w:覆蓋模式
# fp3.write('Hesssssss\n');
# fp3.close(); # 關閉文件,釋放資源

#【文件存儲數據:二進制文件】
import shelve;  # 【二進制文件】
# 生成mydata.bak,mydata.dat,mydata.dir,三個文件【二進制文件】即shelve以文件的形式存儲數據
# sheftFile = shelve.open('mydata');  # 設置以上生成三個文件的目錄,
# cats = ['Zophiess', 'Pookasss', 'Simon11'];
# sheftFile['cats'] = cats;
# sheftFile['oks'] = cats;
# sheftFile.close();

#【原樣輸出數據類型】
import pprint
cats = [{'name': 'Zophie', 'desc': 'chubby'}, {'name': 'Pooka', 'desc': 'fluffy'}]
# 返回一個原始類型的字符串:"[{'desc': 'chubby', 'name': 'Zophie'}, {'desc': 'fluffy', 'name': 'Pooka'}]"
# 主要是用來便於分析數據結構類型
# str = pprint.pformat(cats);

# ------------------------------------------------shuti[文件&目錄]複製移動等操作----
import shutil;
# 【複製文件】
# shutil.copy('2.txt','2_bak.txt');
# 【移動並重命名文件】【弊端,如果存在,會直接覆蓋文件,如果前面包含目錄,請(先檢查目錄)】
# shutil.move('2.txt','2_move.txt');
# 【刪除文件】
# os.unlink('2_move.txt');
# 【刪除目錄】
# os.rmdir('test_dir');  # 必須是空目錄
# 【刪除目錄】
# shutil.rmtree('test_dir');# 刪除目錄及所有的子目錄和文件

import send2trash; # 需要安裝:pip3 install send2trash
# 【刪除文件至回收站】
# send2trash.send2trash('2_bak.txt');# 刪除文件或目錄(直接送到垃圾箱)

# 【遍歷目錄】
# for forlder, subfulders, filename in os.walk('E:\\Python3Excute\\test_dir'):
# print(forlder);  # 當前文件夾的名(如果有子目錄會依次循環)
# print(subfulders);  # 當前文件夾中的文件列表,如果目錄爲空,則以[ ]表示
# print(filename);  # 當前文件夾中的文件的字符串列表,如果目錄爲空,則以[ ]表示

import zipfile, os;

# 【讀取壓縮文件】
# example = zipfile.ZipFile('test_dir.zip');  # 讀取壓縮文件
# print(example.namelist());#以列表的形式,展示壓縮文件中的內容
# example.extractall();  # 解壓文件;如果指定單個文件解決則使用extract('1.txt','自定義指定的目錄')

# 【創建並壓縮文件】
example = zipfile.ZipFile('test.zip', 'w');
example.write('3.txt',compress_type=zipfile.ZIP_DEFLATED);# 第二個參數爲壓縮算法類型
os.unlink('3.txt');
example.close();

發佈了45 篇原創文章 · 獲贊 3 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章