Python 文件操作:随机生成小数、排序、计算表达式并写入文件

本代码演示了如何在 Python 中进行文件操作,包括创建文件、写入随机小数、读取文件内容、排序、字符串处理、计算表达式并追加到文件,以及移动和重命名文件。代码中还包含了异常处理机制,以确保程序的稳定性和可靠性。

1. 文件存在问题

在创建文件时需要判断文件是否存在,若存在则需要给出是否要删除的提示,避免误操作删除文件。

2. 随机生成小数问题

在生成随机小数时需要判断生成的数字中是否有负数,若没有则需要重新生成,直到至少有两个负数。

3. 文件读取问题

在读取文件时需要判断文件是否存在,若不存在则需要给出提示。

4. 表达式计算问题

在计算表达式时需要注意字符串中的小数点和0的处理,以避免计算错误。

代码实现

import os
import random

# 步骤1:创建文件
filename = 'test.txt'
if os.path.exists(filename):
    choice = input('文件已存在,是否删除并重新创建?(y/n)')
    if choice == 'y':
        os.remove(filename)
    else:
        exit()
try:
    with open(filename, 'w') as f:
        print(f'已创建文件 {os.getcwd()}\{filename} 并已写入 10 个随机数据!')
except Exception as e:
    print(f'文件创建失败:{e}')
    exit()

# 步骤2:写入随机小数
nums = []
while len(nums) < 10 or nums.count(-1) < 2:
    nums = [round(random.uniform(-1, 1), 2) for _ in range(10)]
try:
    with open(filename, 'a') as f:
        for n in nums:
            f.write(str(n) + '\n')
        print('随机小数已写入文件!')
except Exception as e:
    print(f'写入文件失败:{e}')
    exit()

# 步骤3:读取文件并排序
try:
    with open(filename, 'r') as f:
        nums = [float(line.strip()) for line in f.readlines()]
        nums.sort(reverse=True)
        nums_str = ','.join([str(n) for n in nums])
        print(f'从 {os.getcwd()}\{filename} 中读取到的数据为:\n{nums_str}')
except Exception as e:
    print(f'读取文件失败:{e}')
    exit()

# 步骤4:字符串处理
nums_str = nums_str.replace('.', '').lstrip('0')
print(f'处理后的字符串为:\n{nums_str}')

# 步骤5:计算表达式并追加到文件
result = sum([int(n) for n in nums_str.split(',')])
result_str = '{:,}'.format(result)
try:
    with open(filename, 'a') as f:
        f.write(result_str + '\n')
        print(f'已追加数值 {result_str}!')
except Exception as e:
    print(f'写入文件失败:{e}')
    exit()

# 步骤6:移动文件并改名
new_filename = 'test_solved.txt'
try:
    os.rename(filename, new_filename)
    print('已移动到当前目录并改名!')
except Exception as e:
    print(f'移动文件失败:{e}')
    exit()

示例

已创建文件 D:\test.txt 并已写入 10 个随机数据!
随机小数已写入文件!
从 D:\test.txt 中读取到的数据为:
0.23,0.21,0.89,0.78,-0.98,-0.45,0.23,0.11,-0.78,-0.66
处理后的字符串为:
897823232111-45-66-78-98
已追加数值 897,823,231,824!
已移动到当前目录并改名!

说明

  • 代码中使用了 os.getcwd() 获取当前目录,os.path.exists() 判断文件是否存在,os.remove() 删除文件,os.rename() 重命名文件。
  • 代码使用了 random.uniform() 生成随机小数,round() 保留两位小数。
  • 代码使用了 with open(...) as f: 语句,保证文件在使用后自动关闭。
  • 代码中使用了异常处理机制,以确保程序的稳定性和可靠性。

总结

本代码展示了如何使用 Python 进行文件操作,包括创建、写入、读取、排序、字符串处理、计算表达式、追加、移动和重命名文件。代码中还包含了异常处理机制,以确保程序的稳定性和可靠性。

希望本代码对您有所帮助!

Python 文件操作:随机生成小数、排序、计算表达式并写入文件

原文地址: https://www.cveoy.top/t/topic/nKNN 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录