Python的几个文件操作小程序
2016-04-08 00:50
701 查看
1. 接受用户的连续输入并保存到指定的文件中
def filewrite(filename)
f = open(filename, 'w')
print('请输入内容【单独输入\':w\'保存退出】:')
while True:
writesome = input()
if writesome != ':w':
f.write('%s\n' % writesome)
else:
break
f.close()
filename = input('请输入文件名:')
filewrite(filename)
2.比较指定的两个文件中的内容是否相同,并打印不同的标志位
def filecompare(file1, file2):
f1 = open(file1)
f2 = open(file2)
count = 0 # 统计行数
differ = [] # 统计不一样的数量
for line1 in f1:
line2 = f2.readline()
count += 1
if line1 != line2:
differ.append(count)
f1.close()
f2.close()
return differ
file1 = input('请输入需要比较的头一个文件名:')
file2 = input('请输入需要比较的另一个文件名:')
differ = filecompare(file1, file2)
if len(differ) == 0:
print('两个文件完全一样!')
else:
print('两个文件共有【%d】处不同:' % len(differ))
for each in differ:
print('第 %d 行不一样' % each)
3. 打印文件中前N行的内容
def fileview(filename, linenum):
print('\n文件%s的前%s的内容如下:\n' % (filename, linenum))
f = open(filename)
for i in range(int(linenum)):
print(f.readline(), end= '')
f.close()
filename = input(r'请输入要打开的文件(C:\\test.txt):')
linenum = input('请输入需要显示该文件前几行:')
fileview(filename, linenum)
4.打印文件中指定范围的内容
def fileview(filename, linenum):
if linenum.strip() == ':':
begin = '1'
end = '-1'
else:
(begin, end) = linenum.split(':')
if begin == '1' and end == '-1':
prompt = '的全文'
elif begin == '1':
prompt = '从开始到%s' % end
elif end == '-1':
prompt = '从%s到结束' % begin
else:
prompt = '从第%s行到第%s行' % (begin, end)
print('\n文件%s%s的内容如下:\n' % (filename, prompt))
begin = int(begin) - 1
end = int(end)
lines = end - begin
f = open(filename)
for i in range(begin): # 用于消耗掉begin之前的内容
f.readline()
if lines < 0:
print(f.read())
else:
for j in range(lines):
print(f.readline(), end='')
f.close()
filename = input(r'请输入要打开的文件(C:\\test.txt):')
linenum = input('请输入需要显示的行数【格式如 13:21 或 :21 或 21: 或 : 】:')
fileview(filename, linenum)
5.替换文件指定的内容
def filereplace(filename, repword, newword):
fread = open(filename)
content = []
count = 0
for eachline in fread:
if repword in eachline:
count = eachline.count(repword) #count感觉应该用这个
eachline = eachline.replace(repword, newword)
content.append(eachline)
decide = input('\n文件 %s 中共有%s个【%s】\n您确定要把所有的【%s】替换为【%s】吗?\n【YES/NO】:' \
% (filename, count, repword, repword, newword))
if decide in ['YES', 'Yes', 'yes']:
fwrite = open(filename, 'w')
fwrite.writelines(content)
fwrite.close()
fread.close()
filename = input('请输入文件名:')
repword = input('请输入需要替换的单词或字符:')
newword = input('请输入新的单词或字符:')
filereplace(filename, repword, newword)
def filewrite(filename)
f = open(filename, 'w')
print('请输入内容【单独输入\':w\'保存退出】:')
while True:
writesome = input()
if writesome != ':w':
f.write('%s\n' % writesome)
else:
break
f.close()
filename = input('请输入文件名:')
filewrite(filename)
2.比较指定的两个文件中的内容是否相同,并打印不同的标志位
def filecompare(file1, file2):
f1 = open(file1)
f2 = open(file2)
count = 0 # 统计行数
differ = [] # 统计不一样的数量
for line1 in f1:
line2 = f2.readline()
count += 1
if line1 != line2:
differ.append(count)
f1.close()
f2.close()
return differ
file1 = input('请输入需要比较的头一个文件名:')
file2 = input('请输入需要比较的另一个文件名:')
differ = filecompare(file1, file2)
if len(differ) == 0:
print('两个文件完全一样!')
else:
print('两个文件共有【%d】处不同:' % len(differ))
for each in differ:
print('第 %d 行不一样' % each)
3. 打印文件中前N行的内容
def fileview(filename, linenum):
print('\n文件%s的前%s的内容如下:\n' % (filename, linenum))
f = open(filename)
for i in range(int(linenum)):
print(f.readline(), end= '')
f.close()
filename = input(r'请输入要打开的文件(C:\\test.txt):')
linenum = input('请输入需要显示该文件前几行:')
fileview(filename, linenum)
4.打印文件中指定范围的内容
def fileview(filename, linenum):
if linenum.strip() == ':':
begin = '1'
end = '-1'
else:
(begin, end) = linenum.split(':')
if begin == '1' and end == '-1':
prompt = '的全文'
elif begin == '1':
prompt = '从开始到%s' % end
elif end == '-1':
prompt = '从%s到结束' % begin
else:
prompt = '从第%s行到第%s行' % (begin, end)
print('\n文件%s%s的内容如下:\n' % (filename, prompt))
begin = int(begin) - 1
end = int(end)
lines = end - begin
f = open(filename)
for i in range(begin): # 用于消耗掉begin之前的内容
f.readline()
if lines < 0:
print(f.read())
else:
for j in range(lines):
print(f.readline(), end='')
f.close()
filename = input(r'请输入要打开的文件(C:\\test.txt):')
linenum = input('请输入需要显示的行数【格式如 13:21 或 :21 或 21: 或 : 】:')
fileview(filename, linenum)
5.替换文件指定的内容
def filereplace(filename, repword, newword):
fread = open(filename)
content = []
count = 0
for eachline in fread:
if repword in eachline:
count = eachline.count(repword) #count感觉应该用这个
eachline = eachline.replace(repword, newword)
content.append(eachline)
decide = input('\n文件 %s 中共有%s个【%s】\n您确定要把所有的【%s】替换为【%s】吗?\n【YES/NO】:' \
% (filename, count, repword, repword, newword))
if decide in ['YES', 'Yes', 'yes']:
fwrite = open(filename, 'w')
fwrite.writelines(content)
fwrite.close()
fread.close()
filename = input('请输入文件名:')
repword = input('请输入需要替换的单词或字符:')
newword = input('请输入新的单词或字符:')
filereplace(filename, repword, newword)
相关文章推荐
- python3使用urllib模块制作网络爬虫
- python调用fortran模块
- python 之 PEP8 风格
- python临时笔记
- 详解Python中的__init__和__new__
- 详解Python中的下划线
- Python模板库Mako的用法
- python计算codis中key分布在哪个slot中
- Python:生产者消费者模型
- python获取绑定的IP,并动态指定出口IP
- 记tushare抓数据中出现的一个问题解答
- python基础之变量
- 【python学习】django安装,第一个应用
- python抓取360百科踩过的坑!
- python 的机器学习库
- Python 基础 —— dict(三)
- 谈谈 Python 程序的运行原理
- 2016.4.10,知数堂在线分享《如何编写优雅的python代码》
- Python for
- python清空字典的两种方法比较