Learn_Python_文件/IO、File方法和OS方法14

1.输入input和输出print

输出print:

Python有两种输出值的方式:表达式语句和print()函数

输出的值转换为字符串,可以使用str()和repr()函数来实现

  • str():函数返回一个用户易读的表达形式
  • repr():产生一个解释器易读的表达形式

输出的形式多样化,可以使用 .format()函数来格式化输出

# 两种方式输出一个平方与立方的表
for x in range(1,11):
    # .rjust()方法,可以将字符串靠右,并在左边填充空格,类似的有.ljust()和.center()
    print(repr(x).rjust(2),repr(x*x).rjust(3),end = ' ')
    print(repr(x*x*x).rjust(4))
 1   1    1
 2   4    8
 3   9   27
 4  16   64
 5  25  125
 6  36  216
 7  49  343
 8  64  512
 9  81  729
10 100 1000
for x in range(1,11):
    # 字典,传入key和value
    print('{0:2d} {1:3d} {2:4d}'.format(x,x*x,x*x*x))
 1   1    1
 2   4    8
 3   9   27
 4  16   64
 5  25  125
 6  36  216
 7  49  343
 8  64  512
 9  81  729
10 100 1000

输入input:

str = input("请输入:")
print("你输入的内容是:",str)
请输入:hah
你输入的内容是: hah

通过eval()进行输入表达式的计算:

str = input("请输入:")
# 将字符串str当成有效的表达式来求值并返回计算结果
# eval尽管很强大,但安全性不高
print("你输入的内容是:",eval(str))
请输入:3*5
你输入的内容是: 15

2.file文件

open() 函数常用形式是接收两个参数:文件名(file)和模式(mode)

  • filename:包含了你要访问的文件名称的字符串值
  • mode:决定了打开文件的模式:只读r,写入w,追加a等等
open(file, mode='r')
# 完整语法格式:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

mode参数有:r, rb, r+, w, wb, w+, a, a+等等

file.write()函数:

写入内容,而且可以写入换行

# 打开一个文件
f = open("foo.txt", "w")

f.write( "Python 是一个非常好的语言。\n是的,的确非常好!!\n" )

# 关闭打开的文件
f.close()

file.read(size)函数:

size 是一个可选的数字类型的参数。 当 size 被忽略了或者为负, 那么该文件的所有内容都将被读取并且返回 .

f = open("foo.txt","r")

str = f.read()
print(str)

f.close()
Python 是一个非常好的语言。
是的,的确非常好!!

file.readline()函数:

从文件中读取单独的一行。换行符为 ‘\n’。f.readline() 如果返回一个空字符串, 说明已经已经读取到最后一行。

f = open("foo.txt","r")

str = f.readline()

print(str)

f.close()
Python 是一个非常好的语言。

file.readlines()函数:

f.readlines() 将返回该文件中包含的所有行。

如果设置可选参数 sizehint, 则读取指定长度的字节, 并且将这些字节按行分割。

f = open("foo.txt","r")

str = f.readlines()

print(str)

f.close()
['Python 是一个非常好的语言。\n', '是的,的确非常好!!\n']

这几个是常用的,还有file.tell(), file.seek()等等file函数,各有用处。

pickle模块

pickle是python语言的一个标准模块 ,机器学习中经常用到。

python的pickle模块实现了基本的数据序列和反序列化。

通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储。

通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。

  • 序列化:pickle.dump(obj, file, [,protocol])
  • 序列化:pickle.dumps(obj, file, [,protocol]);以string形式
  • 反序列化:pickle.load(file)
  • 反序列化:pickel.loads(file);以string形式
#pickle模块主要函数 
import pickle

dataList = [[1, 1, 'yes'],  
            [1, 1, 'yes'],  
            [1, 0, 'no'],  
            [0, 1, 'no'],  
            [0, 1, 'no']]  
dataDic = { 0: [1, 2, 3, 4],  
            1: ('a', 'b'),  
            2: {'c':'yes','d':'no'}}  
  
#使用dump()将数据序列化到文件中  
fw = open('dataFile.txt','wb')  

pickle.dump(dataList, fw, -1)  
 
pickle.dump(dataDic, fw)  
fw.close()  
  
#使用load()将数据从文件中序列化读出  
fr = open('dataFile.txt','rb')  
data1 = pickle.load(fr)  
print(data1)  
data2 = pickle.load(fr)  
print(data2)  
fr.close()  
  
#使用dumps()和loads()举例  
p = pickle.dumps(dataList)  
print( pickle.loads(p) )  
p = pickle.dumps(dataDic)  
print( pickle.loads(p) ) 
[[1, 1, 'yes'], [1, 1, 'yes'], [1, 0, 'no'], [0, 1, 'no'], [0, 1, 'no']]
{0: [1, 2, 3, 4], 1: ('a', 'b'), 2: {'c': 'yes', 'd': 'no'}}
[[1, 1, 'yes'], [1, 1, 'yes'], [1, 0, 'no'], [0, 1, 'no'], [0, 1, 'no']]
{0: [1, 2, 3, 4], 1: ('a', 'b'), 2: {'c': 'yes', 'd': 'no'}}

3.OS文件/目录

暂时用的比较少,操作函数可查阅:Python3 OS文件/目录方法

参考:

革命尚未成功,同志仍需努力!

发布了61 篇原创文章 · 获赞 7 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/MRZHUGH/article/details/103041459