...:
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-19-bf09fccabcc0> in <module>()
1
----> 2 mystr = myfile.read(3)
3 print(mystr)
4
5 #这样就把abc读出来了
NameError: name 'myfile' is not defined
In [20]: #今天这节课是适应Spyder或Python的,所以所有错误一律不管。
In [21]: #读完第一次后,我们要加入一些代码:
In [22]: myfile.seek(0,0)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-22-7dc147563182> in <module>()
----> 1 myfile.seek(0,0)
NameError: name 'myfile' is not defined
In [23]: #这样就能把指针重置了。
In [24]: #现在,在你的txt文件里另起一行,输入“aaaccc”。
In [25]: #接下来,我们新建一个文件:读取文件.py
In [26]: #接下来,我们在里面输入:
In [27]: myfile = open('1.txt','r')
...: mystr = myfile.readline()
...: print(mystr)
...:
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
<ipython-input-27-d0bab098bb6c> in <module>()
----> 1 myfile = open('1.txt','r')
2 mystr = myfile.readline()
3 print(mystr)
4
FileNotFoundError: [Errno 2] No such file or directory: '1.txt'
In [28]: #在运行后,你会发现,它会把 1.txt里面的第一行全部提取出来。
In [29]: #在win里面,Python会一直往下读文件,直到遇到换行符:\r , \n
In [30]: #也可以是这个“结束符”:EOF(文件的末尾标识符)
In [31]: #接下来,你在“读取文件.py”里面输入:
In [32]: mystr = myfile.readline()
...: print(mystr)
...: mystr = myfile.readline()
...: print(mystr)
...: mystr = myfile.readline()
...: print(mystr)
...:
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-32-7e20e94701c3> in <module>()
----> 1 mystr = myfile.readline()
2 print(mystr)
3 mystr = myfile.readline()
4 print(mystr)
5 mystr = myfile.readline()
NameError: name 'myfile' is not defined
In [33]: #然后运行,你会发现它是这样呈现的:
In [34]: # abcdefg
...:
...: # 123456
...:
...: # aaasss
...:
In [35]: #虽然我们没有设置换行符,但是print里面是自带了换行的。
In [36]: #如果我们不需要:
In [37]: #将 print(mystr) 改成: print(mystr,end='')
In [38]: #
In [39]: #接下来,我们再创建一个文件:读取文件2.py
In [40]: #记住啊,这上述四个文件都要保存在刚开始的“文件操作”文件夹里。
In [41]: #但是像之前那样一行一行地读太麻烦了,所以,我们Python里面有个非常简便的代码。
In [42]: #在“读取文件2.py”中输入:
In [43]: myfile = open('1.txt','r')
...: mystr = myfile.readlines()
...:
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
<ipython-input-43-9f61426df58c> in <module>()
----> 1 myfile = open('1.txt','r')
2 mystr = myfile.readlines()
3
FileNotFoundError: [Errno 2] No such file or directory: '1.txt'
In [44]: #再输入:
In [45]: print(mystr)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-45-f4dce09fbdc1> in <module>()
----> 1 print(mystr)
NameError: name 'mystr' is not defined
In [46]: #运行之后:
In [47]: ['abcdefg\n', '123456\n', 'aaasss']
Out[47]: ['abcdefg\n', '123456\n', 'aaasss']
In [48]: #它就变成了一个列表。
In [49]: #接下来,将 mystr = myfile.readlines() 改成:
In [50]: # mylist = myfile.readlines()
In [51]: #再将 print(mystr) 改成 print(mylist) 。
In [52]: #接下来输入:
In [53]: ['abcdefg\n','123456\n','aaaccc']
...: #字符串列表
...: print(len(mylist))
...:
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-53-321f19551d88> in <module>()
1 ['abcdefg\n','123456\n','aaaccc']
2 #字符串列表
----> 3 print(len(mylist))
4
NameError: name 'mylist' is not defined
In [54]: #运行之后, 它将会显示:
In [55]: ['abcdefg\n', '123456\n', 'aaaccc']
...: 3
...:
Out[55]: 3
In [56]: #行数也写出来了。
In [57]: #也就是说,当你遇到一个陌生的文件时,根本不需要去打开它,而去用python读取来操作它。
In [58]: #——————————————————————————————————————————————————————————————————————
In [59]: #目前,我们已经创建了4个文件,3个.py文件,1个.txt文件。
In [60]: #当然如果你的文件太复杂,太大,例如20GB,这样普通的电脑是无法打开的。所以一般这种python代码(脚本)最高上线是200MB。
In [61]: #——————————————————————————————————————————————————————————————————————
In [62]: #下面,我们用 for 来打开文件。
In [63]: #同样,先创建一个"for读文件.py"
In [64]: #然后输入:
In [65]: myfile = open('1.txt','r')
...:
...: for var in myfile:
...: print(var)
...:
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
<ipython-input-65-7d796c895e1c> in <module>()
----> 1 myfile = open('1.txt','r')
2
3 for var in myfile:
4 print(var)
5
FileNotFoundError: [Errno 2] No such file or directory: '1.txt'
In [66]: #但是,这样读的话,我们需要下面的操作就麻烦了:
...: #文件中的每个字节
...: #文件的每一行
...: #整个文件
...:
In [67]: #接下来,将整个程序改为:
In [68]: myfile = open('1.txt','r')
...: mylist =[]
...: for var in myfile:
...: mylist.append(var)
...: print(var)
...:
...: print(mylist)
...:
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
<ipython-input-68-3db6d0dc29e1> in <module>()
----> 1 myfile = open('1.txt','r')
2 mylist =[]
3 for var in myfile:
4 mylist.append(var)
5 print(var)
FileNotFoundError: [Errno 2] No such file or directory: '1.txt'
In [69]: #——————————————————————————————————————————————————————————————————————
In [70]: #下面,我们就要“写文件”了。
In [71]: # write('str'): 在文件中写入字符串
...: #该方法在字符串的结尾不加入'\n'换行符号,并且在成功写入 的时候,会提示出写入的字符。
...:
...: # file.flush(): 把缓冲区中的内容刷新到磁盘上。
...: #我们还可以使用 file.close() 刷新缓冲区
...:
...: # file.writelines(list_of_string): 把字符串列表写入文件
...:
In [72]: #首先我们要新创建一个“写文件.py”,再在同一个文件夹内创建一个“2.txt”。
In [73]: #现在先把之前有关“读文件”的文件全部关闭,只留下刚刚创建的。
In [74]: #输入:
In [75]: myfile = open('2.txt','r')
...: myfile.write('abc')
...:
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
<ipython-input-75-14779bb392f6> in <module>()
----> 1 myfile = open('2.txt','r')
2 myfile.write('abc')
3
FileNotFoundError: [Errno 2] No such file or directory: '2.txt'
In [76]: #当你在编译器运行的时候,你会发现它将报错。因为——现在是只读模式!!!
In [77]: #要把脚本改为:
In [78]: myfile = open('2.txt','w')
...: myfile.write('abc')
...:
Out[78]: 3
In [79]: #这里的“Out”不要理。
In [80]: #当你运行脚本的时候,你会发现 2.txt 里面就有了“abc”。
In [81]: #如果你继续使用 myfile = open('2.txt','w')
...: # myfile.write('abc')
...: # 来写入,你会发现,它会覆盖之前的字符。
...:
In [82]: #但是,还有,只要你用了'w'(写权限),你运行之后你即使不写东西,你会发现,你的征关 2.txt 里面什么都没有。这就是写权限的弊端。
In [83]: #所以我们用'a'。
In [84]: #它每次都会把写入的文件都会写在之前的后面。
In [85]: #现在,在你的 2.txt 文件中写入:
In [86]: # asjalkdasldjass
In [87]: # asdaksdjalsk
In [88]: #再输入:
In [89]: myfile = open('2.txt','a')
...:
...: myfile.write('aaa')
...:
Out[89]: 3
In [90]: #运行后你将会发现,你的文本里就有了:
...: # asjalkdasldjass
...: # asdaksdjalsk
...: # aaa
...:
In [91]: #它就不会截断文件,它就会写在后面。
In [92]: #如果把整个程序换成这样:
In [93]: from time import sleep
...: myfile = open('2.txt','a')
...:
...: myfile.write('bbb')
...: sleep(5)
...:
In [94]: #这样,你就会看到,你的txt里面“aaa”后面就多了一串“bbb”。
In [95]: #
In [96]: #程序结束,文件关闭
In [97]: #用关闭代码将会自动将你的文件和磁盘内存里的文件自动同步。
In [98]: #在 myfile.write('ccc') 下面添加: myfile.flush()
In [99]: #我们有这些方式来刷新缓冲区:
...: #1.刷新缓冲区:缓冲区
...: #2.flush来手动
...: #3.close
...:
In [100]: #flush不需要等待程序结束,就可以输入我们要的字符。
In [101]: #下面我们再加一行代码:
In [102]: myfile.close()
In [103]: #它是跟open配对的,这就是我们说的:一个程序,要有头有尾,有始有终。
In [104]: #但是你不写这个代码,程序也会自动帮你关闭文件。
In [105]: #
In [106]: #现在,我们如果需要大量写入要换行的字符:
In [107]: #先新建一个“写文件2.py”
In [108]: #如果我们要把 1.txt 里的内容拷到 2.txt 里,称为拷文件。
In [109]: #这里,我们要用到一个新的代码: writelines
In [110]: #输入:
In [111]: myfile1 = open('1.txt','r')
...: myfile2 = open('2.txt','a')
...:
...: mylist1 = myfile1.readlines()
...:
...: print(mylist1)
...: myfile2.writelines(mylist1)
...:
...: myfile1.close()
...: myfile2.close()
...:
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
<ipython-input-111-04e8874cabca> in <module>()
----> 1 myfile1 = open('1.txt','r')
2 myfile2 = open('2.txt','a')
3
4 mylist1 = myfile1.readlines()
5
FileNotFoundError: [Errno 2] No such file or directory: '1.txt'
In [112]: #这样就成功备份了文件。
In [113]: #——————————————————————————————————————————————————————————————————————
In [114]: #现在,我们就学会了一套完整文件操作:读,写,拷。
In [115]: #本课所有.py文件代码:
In [116]: #1.打开文件:
In [117]: myfile = open('1.txt','r')
...: mystr = myfile.read(3)
...: print(mystr)
...: myfile.seek(0,0)
...: mystr1 = myfile.read(5)
...: print(mystr1)
...:
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
<ipython-input-117-ab3e4dbd2465> in <module>()
----> 1 myfile = open('1.txt','r')
2 mystr = myfile.read(3)
3 print(mystr)
4 myfile.seek(0,0)
5 mystr1 = myfile.read(5)
FileNotFoundError: [Errno 2] No such file or directory: '1.txt'
In [118]: #2.读取文件:
In [119]: myfile = open('1.txt','r')
...: mystr = myfile.readline()
...:
...: print(mystr,end='')
...: mystr = myfile.readline()
...: print(mystr)
...: mystr = myfile.readline()
...: print(mystr)
...: mystr = myfile.readline()
...: print(mystr)
...:
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
<ipython-input-119-f8a8bac971e6> in <module>()
----> 1 myfile = open('1.txt','r')
2 mystr = myfile.readline()
3
4 print(mystr,end='')
5 mystr = myfile.readline()
FileNotFoundError: [Errno 2] No such file or directory: '1.txt'
In [120]: #3.读取文件2:
In [121]: myfile = open('1.txt','r')
...: mylist = myfile.readlines()
...: print(mylist)
...: ['abcdefg\n','123456\n','aaaccc']
...: #字符串列表
...: print(len(mylist))
...:
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
<ipython-input-121-413cd226507a> in <module>()
----> 1 myfile = open('1.txt','r')
2 mylist = myfile.readlines()
3 print(mylist)
4 ['abcdefg\n','123456\n','aaaccc']
5 #字符串列表
FileNotFoundError: [Errno 2] No such file or directory: '1.txt'
In [122]: #4.for读文件:
In [123]: myfile = open('1.txt','r')
...: mylist =[]
...: for var in myfile:
...: mylist.append(var)
...: print(var)
...:
...: print(mylist)
...:
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
<ipython-input-123-3db6d0dc29e1> in <module>()
----> 1 myfile = open('1.txt','r')
2 mylist =[]
3 for var in myfile:
4 mylist.append(var)
5 print(var)
FileNotFoundError: [Errno 2] No such file or directory: '1.txt'
In [124]: #5.写文件:
In [125]: from time import sleep
...: myfile = open('2.txt','a')
...:
...: myfile.write('ccc')
...: myfile.flush()
...:
...: sleep(5)
...:
...: myfile.close()
...:
In [126]: #写文件2:
In [127]: myfile1 = open('1.txt','r')
...: myfile2 = open('2.txt','a')
...:
...: mylist1 = myfile1.readlines()
...:
...: print(mylist1)
...: myfile2.writelines(mylist1)
...:
...: myfile1.close()
...: myfile2.close()
...:
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
<ipython-input-127-04e8874cabca> in <module>()
----> 1 myfile1 = open('1.txt','r')
2 myfile2 = open('2.txt','a')
3
4 mylist1 = myfile1.readlines()
5
FileNotFoundError: [Errno 2] No such file or directory: '1.txt'
In [128]: #——————————————————————————————————————————————————————————————————————
In [129]: print("\n本次“只读课堂”的python教程就到这了,欢迎继续收看!\n")
本次“只读课堂”的python教程就到这了,欢迎继续收看!
In [130]: #本节课后面有课件!
本课配套素材资源:
https://download.csdn.net/download/jeasonlan/12911815