Python-文件读写和嵌套循环

一、文件读写
1、文件打开方式 open
fileDir = 'D:/pyTest1.txt'
fileDir2 = 'D:\\prText1.txt' #代码层面一般用两个\ 因为如果文件的第一个名为 n 就有问题了
fileDir3 = r'D:\pyText2.txt' # r取消转义
file_object = open(fileDir,encoding='UTF-8')#如果文件中有中文,需要加一个参数:encoding='UTF-8'
print(file_object.read())#read获取的内容是字符串  Excel的读写 有库:xlrd xlwt xlutils
#文件操作完成之后要进行关闭
file_object.close()
2、文件指针—默认是0 起始位置
print(file_object.tell())#初始位置
print(file_object.read(2))
print(file_object.tell())#读完之后的位置
3、seek 指定文件指针的位置
file_object.seek(2) #seek(位置,模式) 默认0 从0开始 1
print('seek后的文件指针位置:',file_object.tell())
#输出:seek后的文件指针位置: 2
4、读取一行、多行
print(file_object.readline())
#读取多行
print(file_object.readlines())#返回列表
#去换行符读取--返回list
print(file_object.read().splitlines())
5、文件写入
  • w 文件存在会清空,不存在会新建

  • a 只是写 不会清空文件,在文件末尾追加

  • r+ 为了读取并且写文件而打开文件。如果文件不存在会报错。文件指针在文件的开头,从0开始覆盖

  • w+ 为了读取并且写文件而打开文件。如果文件不存在,会创建一个文件,文件指针在文件的开头 如果文件已经存在,文件内容被清空

  • a+ 为了读取并且写文件而打开文件。如果文件不存在,会创建一个文件。文件指针在文件的结尾。很多OS写操作永远在文件结尾进行,不管是否用了seek

  • 本质是写在磁盘中,并不会写在文件中,需要人为去保存在文件中

  • close有关闭保存的功能

  • flush 刷新缓存

fo = open(fileDir,'w')
fo.write('12345\nabcdef')
fo.flush()
fo.close()
6、with open
with open(fileDir) as rFile,open('路径','w') as wFile: # rFile = open()
    print(rFile.read())
    print(wFile.read())
二、循环
1、嵌套循环
boys = ['mike','jack','tom']
girls = ['lisa','aa','bb']
for girl in girls:
    for boy in boys:
#保证每个男孩对一个女孩
2、列表生成式
#对于简单的循环,只有一层的循环可以使用列表生成式
beforetax = [10000,12000,14000,8000,4000]
aftertax = []
for one in beforetax:
    #对大于5000的扣税
    if one > 5000:
        aftertax.append(int(one*0.9))
print(aftertax)
###列表生成式写法
aftertax2 = [int(one*0.9) for one in beforetax if one > 5000]
print(aftertax2)

你可能感兴趣的:(Python,文件读写操作,Python,列表生成式)