读取文件,相对路径和绝对路径
window上文件路径的分隔符是(C:\Users\Administrator\PycharmProjects\JK\testcase)
import os
创建文件名称的字符串
myFiles=[‘accouts.txt’,‘details.csv’,‘invite.docx’]
for filename in myFiles:
print(os.path.join(‘C:\Users\Exercise\openWriteFiles’,filename))
#获取当前路径
print(os.getcwd())
#改变当前路径
os.chdir(‘C:\Users\Exercise\openWriteFiles’)
print(os.getcwd())
os.chdir(‘C:\Users\Administrator\PycharmProjects\JK\testcase’)
print(os.getcwd())
创建新的文件夹
os.rmdir(‘C:\Users\Exercise\openWriteFiles\newFolder’)
移除一个文件夹
os.makedirs(‘C:\Users\Exercise\openWriteFiles\newFolder’)
处理相对路径和绝对路径
1.os.path.isabs()判断是否是绝对路径,如果是,返回True
print(os.path.isabs(‘C:\Users\Exercise\openWriteFiles\invite.docx’))
print(os.path.isabs(’.\FileTester.txt’))
2.os.path.abspath()相对路径转化为绝对路径
print(os.path.abspath(’.\FileTester.txt’))
3.os.path.relpath(path,start)将返回从start路径到path的相对路径的字符串,如果没有提供start,默认为当前工作目录
print(os.path.relpath(‘C:\Users\Administrator\PycharmProjects\JK\data’))
4.读取具体文件的路径:目录名称
url=‘C:\Users\Administrator\PycharmProjects\JK\data\data.xlsx’
print(os.path.dirname(url))
5.读取具体文件的基本名称
print(os.path.basename(‘C:\Users\Administrator\PycharmProjects\JK\data\data.xlsx’))
6. 获取关于路径目录名称和文件名称的元祖
print(os.path.split(url))
7. 对文件内容进行分割,但在linux和mac系统上,返回的列表头上有一个空字符串
print(url.split(os.path.sep))
8. 查看文件大小和文件夹内容
print(os.path.getsize(url)) # 返回单位:9979字节
print(os.listdir(‘C:\Users\Administrator\PycharmProjects\JK\data’))
filepath=os.listdir(’…\data’)
totalSize=0
for filename in filepath:
totalSize=totalSize+os.path.getsize(os.path.join(’…\data’,filename))
print(totalSize)
9.检查路径的有效性
检查文件和文件夹的有效性
print(os.path.exists(‘C:\Users\Administrator\PycharmProjects\JK\data’))
print(os.path.exists(‘C:\Users\Administrator\PycharmProjects\JK\testcase\FileTester.txt’))
检查文件的有效性
print(os.path.isfile(‘C:\Users\Administrator\PycharmProjects\JK\data’))
print(os.path.isfile(‘C:\Users\Administrator\PycharmProjects\JK\testcase\FileTester.txt’))
检查文件夹的有效性
print(os.path.isdir(‘C:\Users\Administrator\PycharmProjects\JK\data’))
print(os.path.isdir(‘C:\Users\Administrator\PycharmProjects\JK\testcase\FileTester.txt’))
10. 文件读写过程
1.调用open()函数,返回一个file对象
2.调用file对象的read()或write()方法
3. 调用file对象的close()方法,关闭该文件
readTxtFile=open(’…\data\data.txt’)
txtFileContent=readTxtFile.read()
print(txtFileContent)
readTxtFile.close()
—read()返回保存在文件中的字符串
—readlines()返回保存在文件中的字符串的列表,每个字符串是一行
readTxtFile=open(’…\data\data.txt’)
txtFileLineContent=readTxtFile.readlines()
print(txtFileLineContent)
readTxtFile.close()
—write写文件有两种模式
一是写模式,‘w’,覆盖掉原文件
二是添加模式,‘a’,在文件的末尾添加文本
newTxtFile=open(‘newTxt.txt’,‘w’)
newTxtFile.write(‘Hello World!\n’)
newTxtFile.close()
newTxtFile=open(‘newTxt.txt’,‘a’)
newTxtFile.write(‘Hello World!\n’)
newTxtFile.close()
newTxtFile=open(‘newTxt.txt’)
txtNewFileContent=newTxtFile.read()
newTxtFile.close()
print(txtNewFileContent)
11、windows系统中shelve模块保存变量,生成三个文件,不清楚具体逻辑
import shelve
shelfFile=shelve.open(‘mydata’)
animals=[‘cat’,‘dog’,‘panda’]
shelfFile[‘animals’]=animals
shelfFile.close()
shelfFile=shelve.open(‘mydata’)
print(type(shelfFile)) # <class ‘shelve.DbfilenameShelf’>
print(shelfFile[‘animals’]) #[‘cat’, ‘dog’, ‘panda’]
shelfFile.close()
shelfFile=shelve.open(‘mydata’)
print(list(shelfFile.values()))
print(list(shelfFile.keys()))
shelfFile.close()
12、pprint.pformat()函数将文件内容写入.py文件
import pprint
vegetables=[{‘name’:‘tomatoes’,‘desc’:‘salty’},{‘name’:‘potato’,‘desc’:‘delicious’}]
print(pprint.pformat(vegetables))
fileobj=open(‘myvegetables.py’,‘w’)
fileobj.write(‘vegetables=’+pprint.pformat(vegetables)+’\n’)
fileobj.close()
记日志的四种级别:
import logging
logging.basicConfig(filename=‘mylog.txt’,level=logging.DEBUG,format=’ %(asctime)s - %(levelname)s - %(message)s’)
logging.debug(‘some debugging details.’)
logging.warning(‘the logging module is still working.’)
logging.error(‘an error has occurred.’)
logging.critical(‘the progress is unable to recover.’)
调试程序的五种过程:
1、go
2、step
3、over
4、out
5、quit