实验四、文件操作与异常处理请设计如下功能的 Python 代码并进行验证以下每个步骤均需要考虑异常!:1、 请在 D 盘Windows 系统或者usrlocalLinux下创建一个新的文件 testtxt若文件存在则需要给出是否要进行删除的提示若用户输入 y则删除原来的 testtxt并新建一个新的 testtxt否则转步骤 3;2、 在 testtxt 文件中随机写入 10 个-1-1 的小数保
import os
import random
# 步骤1
if os.path.exists('D:/test.txt') or os.path.exists('/usr/local/test.txt'):
choice = input("文件已存在,是否删除并重新创建?(y/n)")
if choice.lower() == 'y':
os.remove('D:/test.txt')
os.remove('/usr/local/test.txt')
else:
exit()
try:
with open('D:/test.txt', 'w') as f:
pass
except:
with open('/usr/local/test.txt', 'w') as f:
pass
# 步骤2
while True:
try:
with open('D:/test.txt', 'w') as f:
for i in range(10):
num = round(random.uniform(-1, 1), 2)
f.write(str(num) + '\n')
if num < 0:
count += 1
if count >= 2:
print("已创建文件 D:/test.txt 并已写入 10 个随机数据!")
break
except:
with open('/usr/local/test.txt', 'w') as f:
for i in range(10):
num = round(random.uniform(-1, 1), 2)
f.write(str(num) + '\n')
if num < 0:
count += 1
if count >= 2:
print("已创建文件 /usr/local/test.txt 并已写入 10 个随机数据!")
break
# 步骤3
try:
with open('D:/test.txt', 'r') as f:
data = f.readlines()
num_list = []
for d in data:
num_list.append(float(d))
num_list.sort(reverse=True)
sorted_str = ','.join([str(num) for num in num_list])
print("从 D:/test.txt 中读取到的数据为:")
print(sorted_str)
except:
with open('/usr/local/test.txt', 'r') as f:
data = f.readlines()
num_list = []
for d in data:
num_list.append(float(d))
num_list.sort(reverse=True)
sorted_str = ','.join([str(num) for num in num_list])
print("从 /usr/local/test.txt 中读取到的数据为:")
print(sorted_str)
# 步骤4
new_str = sorted_str.replace('.', '').lstrip('0')
print("排序之后得到的字符串为:")
print(new_str)
# 步骤5
result = eval(new_str)
result_str = '{:,}'.format(result)
try:
with open('D:/test.txt', 'a') as f:
f.write(result_str + '\n')
print("经过处理之后的字符串为:")
print(result_str)
print("最终得到的值为:" + result_str)
print("已追加该数值!")
except:
with open('/usr/local/test.txt', 'a') as f:
f.write(result_str + '\n')
print("经过处理之后的字符串为:")
print(result_str)
print("最终得到的值为:" + result_str)
print("已追加该数值!")
# 步骤6
if os.path.exists('D:/test.txt'):
os.rename('D:/test.txt', 'test_solved.txt')
print("已移动到当前目录!")
print("已改名!")
else:
os.rename('/usr/local/test.txt', 'test_solved.txt')
print("已移动到当前目录!")
print("已改名!")
print("程序运行完毕!")
``
原文地址: https://www.cveoy.top/t/topic/dIGV 著作权归作者所有。请勿转载和采集!