python简单的文件中信息操作
文件读写
我们可以用python来实现读取对文件中文本信息的读取,代码如下:
def main():
# 正常读写
fs = open('hello.txt', 'r', encoding='utf-8') # 和fs.close同时出现
# 相对路径(相对目前的路径)、绝对路径(完整的文件路径)
content = fs.read() # 读取
print(content)
fs.close()
if __name__ == '__main__':
main()
异常机制 – 处理程序在运行过程中出现的意外状况的手段,因为不是所有的问题都能在写程序调试程序的时候就能发现,所以上面的代码可以改成下面的方式更好:
import time
def main():
try: # 把可能出现状况的文件保护起来,
with open('helo', 'r', encoding='utf-8') as fs:
for line in fs:
print(line, end='\n')
time.sleep(1)
except FileNotFoundError as e: # 如果文件出现状况,except捕捉异常。
print(e) # 如果文件异常,打印错误提示
print('指定文件无法打开')
print('程序执行程序')
if __name__ == '__main__':
main()
把文档写入文件中也可以实现:
def main():
try:
with open('hello.txt', 'w', encoding='utf-8') as fs:
fs.write('我想做燕子')
fs.write('只需简单思想')
except (FileNotFoundError, IOError):
print('指定文件无法打开')
print('程序执行程序')
if __name__ == '__main__':
main()
图片格式可以通过二进制装换,实现图片的读写:
def main():
try:
with open('../123/q.JPG', 'rb') as fs1: # 把图片转移成二进制格式
data = fs1.read()
print(data)
print(type(data))
with open('../abc/hi.jpg', 'wb') as fs2: # 把二进制格式图片存入新的文件夹中,
fs2.write(data) # 写数据
except FileNotFoundError as e:
print(e)
print('指定的文件无法打开')
except IOError:
print('读写文件时出现错误')
print('程序执行结束')
if __name__ == '__main__':
main()
练习
# 把一万以内的素数分开装在三个文档中
from math import sqrt
def is_prime(n):
assert n > 0 # 断言:保证条件成立
for factor in range(2, int(sqrt(n)) + 1):
if n % factor == 0:
return False
return True if n != 1 else False
def main():
filenames = ('a.txt', 'b.txt', 'c.txt')
fs_list = []
try:
for filename in filenames:
fs_list.append(open(filename, 'w', encoding='utf-8'))
for number in range(1, 10000):
if is_prime(number):
if number < 100:
fs_list[0].write(str(number) + '\n')
elif number < 1000:
fs_list[1].write(str(number) + '\n')
else:
fs_list[2].write(str(number) + '\n')
except IOError:
# 如果try中出现了状况就通过except来捕获错误(异常)进行对应的处理
print('读写文件发生错误')
else:
# 如果没有出状况那么可以把无风险的代码放到else中执行
pass
finally:
# 不管程序正常还是异常最后这里代码一定执行
# 所以此处最适合做释放外部资源的操作
print('释放文件资源')
for fs in fs_list:
fs.close()
print('程序运行完成')
if __name__ == '__main__':
main()