天天看点

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)
           

运行结果:

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.关于文件操作还有很多不熟悉的地方:

①文件操作权限的设置

②文件的编码格式