文章目录
python脚本1、argparse参数2、文件读写1)最常用的一种方法,利用pandas包2)另一种方法用csv包,一行一行写入csv写入多列
3、取文件中关键字所在的行1) if search_word in line:2)正则表达式
4、十进制数转二进制5、数据位宽补全,如001,002……rjust() 方法zfill() 函数扩展资料:一、du整数的输出二、浮点数输出
python脚本
100天Python
1、argparse参数
参考
2、文件读写
[Python:文件的读取、创建、追加、删除、清空]([https://blog.csdn.net/qitong111/article/details/79676799?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2allsobaiduenddefault-2-79676799.nonecase&utm_term=csv%E6%B8%85%E7%A9%BAcsv%20python&spm=1000.2123.3001.4430](https://blog.csdn.net/qitong111/article/details/79676799?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2allsobaiduenddefault-2-79676799.nonecase&utm_term=csv清空csv python&spm=1000.2123.3001.4430))
csv文件读写
1)最常用的一种方法,利用pandas包
import pandas
as pd
import numpy
as np
a
= [1,2,3]
b
= [4,5,6]
dataframe
= pd
.DataFrame
({'a_name':a
,'b_name':b
})
dataframe
.to_csv
("test.csv",mode
='',index
=False,sep
=',')
a_name b_name
0 1 4
1 2 5
2 3 6
data
= pd
.read_csv
('test.csv')
print(data
['a_name'])
data
= pd
.read_csv
(r
'test.csv')
data1
= [7,8,9]
data
['c_name'] = data1
data
.to_csv
(r
"test.csv",index
=False)
注意
第一次写入csv的时候,可能 csv文件不存在,或为空,不能用 pd.read_csv(‘test.csv’),会报错
解决:先用以下方式创建 test.csv ,然后就可以用 pd.read_csv(‘test.csv’) 读取
data
=d
.DataFram
({'a':[1,2,3]})
data
.to_csv
('test.csv',index
=False)
已有的 csv 文件写入
示例代码
import pandas
as pd
import numpy
as np
data
= pd
.read_csv
(r
'test.csv')
data1
= [7,8,9]
data
['c_name'] = data1
data
.to_csv
(r
"test.csv",index
=False)
按列追加:即在原有的文件后面写入一列,data.to_csv() 中,不能写mode=‘a’,否则会按行追加
按行追加:data.to_csv() 中,设置 mode='a’
2)另一种方法用csv包,一行一行写入
import csv
with open("test.csv","r") as csvfile
:
reader
= csv
.reader
(csvfile
)
for line
in reader
:
print line
with open("test.csv","w") as csvfile
: // 若不存在,会自动创建csv文件
writer
= csv
.writer
(csvfile
)
writer
.writerow
(["index","a_name","b_name"])
writer
.writerows
([[0,1,3],[1,2,3],[2,3,4]])
index a_name b_name
0 1 3
1 2 3
2 3 4
或者
import csv
// 下面方式不会自动创建
file.csv
,需要先手动创建好,否则会报错
csv_file
= open('file.csv','r+',newline
='')
csv_file
.truncate
()
writer
= csv
.writer
(csv_file
,dialect
='excel')
string
= ['a','b','c']
writer
.writerow
(string
)
Python读csv:创建、追加、覆盖
csv写入多列
import csv
import os
def main():
current_dir
= os
.path
.abspath
('.')
file_name
= os
.path
.join
(current_dir
, "csss.csv")
csvfile
= open(file_name
, 'wt' ,encoding
="UTF8")
writer
=csv
.writer
(csvfile
, delimiter
=",")
header
=['uel','title']
csvrow1
=[]
csvrow2
=[]
csvrow1
.append
("测试1")
csvrow1
.append
("测试2")
csvrow2
.append
("111")
csvrow2
.append
("222")
writer
.writerow
(header
)
writer
.writerows
(zip(csvrow1
,csvrow2
))
csvfile
.close
()
if __name__
== '__main__':
main
()
3、取文件中关键字所在的行
1) if search_word in line:
f
= open('file.txt','r')
lines
= f
.readlines
()
match_string
= ['abc','cde','fgh']
for line
in lines
:
for word
in match_string
:
if word
in line
:
print(line
)
2)正则表达式
4、十进制数转二进制
def d2b(num
, dataWidth
, fracBits
):
if num
>= 0:
num
= num
* (2 ** fracBits
)
num
= int(num
)
e
= bin(num
)[2:]
e
= e
.rjust
(9,'0')
else:
num
= -num
num
= num
* (2 ** fracBits
)
num
= int(num
)
if num
== 0:
d
= 0
else:
d
= 2 ** dataWidth
- num
e
= bin(d
)[2:]
e
= e
.rjust
(8,'0')
return e
也可参考:Python将十进制数据转换为指定位宽的二进制字符串的方法
5、数据位宽补全,如001,002……
rjust() 方法
**作用:**返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串
for i
in range(1,30):
print (str(i
).rjust
(2,'0'))
zfill() 函数
for i
in range(1,20):
n
=str(i
)
s
= n
.zfill
(3)
print s
或者:bai
for i
in range(1,20):
m
= "%03d" % i
print m
扩展资料:
Python格式化输出bai
一、du整数的输出
1、%o —— oct 八进zhi制
2、%d —— dec 十进dao制
3、%x —— hex 十六进zhuan制
print('%o' % 20)
24
print('%d' % 20)
20
print('%x' % 20)
14
二、浮点数输出
1、格式化输出
%f ——保留小数点后面六位有效数字
%.3f,保留3位小数位
%e ——保留小数点后面六位有效数字,指数形式输出
%.3e,保留3位小数位,使用科学计数法
%g ——在保证六位有效数字的前提下,使用小数方式,否则使用科学计数法
%.3g,保留3位有效数字,使用小数或科学计数法
2、字符串输出
%s
%10s——右对齐,占位符10位
%-10s——左对齐,占位符10位
%.2s——截取2位字符串
%10.2s——10位占位符,截取两位字符串