小工具之将文本转换为大写,每行行首加单引号,行尾加单引号和逗号(最后一行只加单引号)
背景:
使用oracle查询表名时,常常需要将一些表名转换为大写,并且需要加单引号才能够查询。其实excel和nopad++等工具也能实现,但就想试着使用Python来实现这个小小的需求。
代码:
#!/usr/bin/env python3
# _*_ coding: utf-8 _*_
#function:将文本的内容全部转化为大写,每行行首加单引号,行尾加单引号和逗号(最后一行只加单引号),原文本每五行为一行
#time:20181029
#writer:mengQiFeng
import fileinput
#文件路径
fileName='D:\\0data\\python\\ph\\sourceFile.txt'
toName='D:\\0data\\python\\ph\\zhuanhuan.txt'
#逻辑部分开始
From_file=open(fileName)
f=open(toName,'w')
count=1
for each_line in From_file:
#逐行读取,每行行首加单引号,行尾加单引号和逗号,将首尾的空格去掉;每五行换行
#\n为换行;\t为横向制表符;\'为单引号;replace()替换;upper()转化为大写
if count%5==0:
f.writelines('\''+each_line.replace(' ','').replace('\n', '\',').replace('\t', '').upper()+'\n')
else:
f.writelines('\''+each_line.replace(' ','').replace('\n', '\',').replace('\t', '').upper())
count+=1
#将文件模式更改为最后追加模式并在最后文件追加一个单引号
f=open(toName,'a')
f.write('\'')
f.close()
From_file.close()
print('文件中总共有:%d行'%(count-1))
##但发现有一个bug,就是如果总行数为5的倍数时,最后一行会有一个换行符,导致最后的单引号加到了原最后一行的下一行。