用python的with open和os对文档进行读写操作

文件练习题

随机生成20个10-100区间范围内的整数,从小到大排序,然后写入文件,接着从文件中读取出来 文件内容,最后反序,再追加到文件的下一行。

import random

list_num = [random.randint(1, 100) for i in range(20)]

list_num.sort()
li = [str(i) for i in list_num]
# txt = ','.join(list(map(str, list_num))) txt = ','.join(li)
with open('num1.txt', 'w', encoding='utf-8') as f: 
	f.write(txt)
with open('num1.txt', 'r+', encoding='utf-8') as f: 
	list_num2 = f.read().split(',') 
	list_num2.reverse()
	li2 = [str(j) for j in list_num2]
# txt2 = ','.join(list(map(str, list_num2))) 
	txt2 = ','.join(li2)
	f.write('\n') 
	f.write(txt2)

打开一个英文文本文件,编写程序读取其内容,并把其中的大写字母变成小写字母,小写字母变成 大写字母。

f = open(r'd:\1.txt','r') 
s = f.readlines() 
f.close()

r = [i.swapcase() for i in s]

f = open(r'd:\2.txt','w') 
f.writelines(r) 
f.close()

读取一个文件,显示除了以#号开头的行以外的所有行。

import os
#1、打开文件
f = open("install-sh","r")
#2、把文章全部读取,以列表形式存储。
res = f.readlines()
f.close()
#3、循环整个列表,去除以空格开头的行的空格,然后去除以#号开头的行的#号
for i in res:
i.strip(" ")
	if i[0] == "#":
		continue 
	else: 
		print(i)

批量更改指定文件夹下的所有文件的名称。
首先,生成文件:

import os
folder_name = input("请输入要生成文件的文件夹: ") 
os.chdir(folder_name)
n = int(input('请输入文件数量:'))
for i in range(n):
	name = "test" + str(i) + '.txt'
	 f = open(name, 'w')
	f.write('') 
	f.close()

批量命名

# 方 法 1 
import os

# (1) 获取要命名的文件夹名字
folder_name = input("请输入要重命名的文件夹: ") 
# (2) 获取指定文件夹中 所有文件的名字
files_name = os.listdir(folder_name) # 不加报错

os.chdir(folder_name) 
# (3) 重命名
for name in files_name: 
	print(name)
	os.rename(name, "[杭州]-"+name)
# 方 法 2 
import os
# (1) 获取要命名的文件夹名字
folder_name = input("请输入要重命名的文件夹: ") 
# (2) 获取指定文件夹中 所有文件的名字
files_name = os.listdir(folder_name) # 不加报错

os.chdir(folder_name) 
# (3) 重命名
for name in files_name: 
	print(name)
	position = name.rfind(".")
	new_name = name[:position] + "-[杭州]" + name[position:] 
	os.rename(name, new_name)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值