Python程序設計之文件操作(3)

1.將字典信息保存爲二進制文件,然後讀取

通過pickle模塊將內容轉換爲二進制數據寫到文件中

import os.path
import pickle   #讀寫二進制文件
f=open('s1.dat','wb')
s1={'name':'QinHsiu','scour':103}
try:
    pickle.dump(s1,f)
except:
    print('input error!')
finally:
    f.close()

從二進制文件中讀出信息

with open('s1.dat','rb') as fr:
    n=pickle.load(fr)
    print('使用pickle模塊讀文件:',n)

運行結果:

使用pickle模塊讀文件: {'name': 'QinHsiu', 'scour': 103}
2.使用shutil模塊中的move方法進行文件移動
import shutil
path='2.dat'
path3=os.getcwd()
print('當前路徑:',path3,end='\n')
path2=os.path.join(path3,path)
#print(path2,end='\n')
print('移動文件',shutil.move(path,path2),end='\n')
#print('移動文件:',shutil.rmtree(path,))

運行結果:

當前路徑: C:\Users\QinHsiu\PythonProjects\String\file-operate
移動文件 C:\Users\QinHsiu\PythonProjects\String\file-operate\2.dat
3.修改當前路徑
#path3=os.getcwd()
print('當前目錄:',path3)
print('查看目錄操作:',dir(os.path),end='\n')
#print('創建新目錄:',os.mkdir('newdir'),end='\n')
path4=os.getcwd()+'\\newdir'
print('打印當前目錄信息:',os.listdir(),end='\n')
path5='C:\\Users\\QinHsiu\\PythonProjects\\String\\file-operate'
os.chdir(path5)
print('當前目錄',os.getcwd(),end='\n')
print('修改當前目錄名:',os.rename('newdir','Newdir'),end='\n')
print('打印當前目錄信息:',os.getcwd(),end='\n')

運行結果:

當前目錄: C:\Users\QinHsiu\PythonProjects\String\file-operate
查看目錄操作: ['__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_abspath_fallback', '_get_bothseps', '_getfinalpathname', '_getfullpathname', '_getvolumepathname', 'abspath', 'altsep', 'basename', 'commonpath', 'commonprefix', 'curdir', 'defpath', 'devnull', 'dirname', 'exists', 'expanduser', 'expandvars', 'extsep', 'genericpath', 'getatime', 'getctime', 'getmtime', 'getsize', 'isabs', 'isdir', 'isfile', 'islink', 'ismount', 'join', 'lexists', 'normcase', 'normpath', 'os', 'pardir', 'pathsep', 'realpath', 'relpath', 'samefile', 'sameopenfile', 'samestat', 'sep', 'split', 'splitdrive', 'splitext', 'stat', 'supports_unicode_filenames', 'sys']
打印當前目錄信息: ['1.dat', '1.gif', '1.py', '1.txt', '1.xls', '2.dat', '2.py', '2.txt', '3.py', '3.txt', '4.txt', 'english', 'Newdir', 'read.py', 's1.dat', 's2.dat']
當前目錄 C:\Users\QinHsiu\PythonProjects\String\file-operate
修改當前目錄名: None
打印當前目錄信息: C:\Users\QinHsiu\PythonProjects\String\file-operate
4.查看用戶輸入路徑是否包含用戶輸入的文件
path6=str(input('請輸入路徑:'))
file=str(input('請輸入文件名:'))
list=os.listdir(path6)
if file in list:
    print('True',end='\n')
else:
    print('False',end='\n')

運行結果:

請輸入路徑:C:\\Users\QinHsiu\\PythonProjects\\String\\file-operate
請輸入文件名:1.txt
True
學習筆記:

1.使用struct模塊進行字典的二進制存取的實現還有待思考;
2.使用字符串命名路徑時,需要使用轉義字符’’;
3.返回上一級目錄,暫時只會通過獲取當前目錄然後截取目錄中的部分數據,實現返回上一級目錄;
4.關於文件操作還有很多不熟悉的地方:
①文件操作權限的設置
②文件的編碼格式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章