python 文件遍历:
import os
import shutil
import os.path
rootpath="/home/xx/Documents/flowers"
filelists=os.listdir(rootpath)
for file in filelists:#一级目录或文件遍历
print file
print os.path.join(rootpath,file)#一级目录下文件夹或文件的完整路径
sourcefulpath=/home/xx/Documents/1.jpg
distfulpath=/home/xx/Documents/2.jpg
shutil.copy(sourcefulpath,distfulpath)#文件的拷贝
os.rename(sourcefulpath,distfulpath)#文件重命名
for parent,dirnames,filenames in os.walk(rootpath):
print(parent)#所有文件,文件夹的父目录 先是最外层的,后面是顺序执行的
print(dirnames)#所有文件夹名,不包含单文件
print(filenames)#所有文件的名字,每个该文件的父目录下的所有文件为一个list集合
#遍历所有文件夹下的所有文件,全路径
for filename in filenames:
print(os.path.join(parent,filename))
python文件读写:
import os
import shutil
import os.path
txtfile="/home/xx/Documents/1.txt"
f1=open(txtfile,"r")#(1)只能读,不能写;(2)文件不存在时会报错.
f2=open(txtfile,'w')#(1)只能写,不能读;(2)写的时候会把原来文件的内容清空;(3)当文件不存在时,会创建新文件。
f3=open(txtfile,'a')#(1)不能读;(2)可以写,是追加写,即在原内容末尾添加新内容;(3)当文件不存在时,创建新文件。
f4=open(txtfile,'r+')#r+ 模式的指针默认是在文件的开头,如果直接写入,则会覆盖源文件,通过read() 读取文件后,指针会移到文件的末尾,再写入数据就不会有问题了.
(1)文件不存在时会报错;(2)可以读,也可以写,是覆盖写,会把文件最前面的内容覆盖
f5=open(txtfile,'w+')#(1)可以写,也可以读;(2)写的时候会把原来文件的内容清空;(3)当文件不存在时,会创建新文件。
f6=open(txtfile,'a+')#(1)可读可写;(2)写的时候是追加写,即在原内容末尾添加新内容;(3)当文件不存在时,创建新文件。
a=f1.readline()
print(a)
b=f1.read()#所有都读出来,上下行分开
b=f1.readline()#读取一行 f.readline() 读取到最后如果没有数据会返回空
b=f1.readlines()#是一个list队列每个后面有\n
print(b)
f1.close()
f=open(txtfile,"a",encoding='utf-8')#有中文出现乱码时加上encoding就可以了
f.write("hello,world!")#写入字符,末尾没有加换行符
l=['\nhello baby\n','hello teacher\n','hello master\n']
f.writelines(l)#这里如果list本身没有换行,空格,分隔符
f.close()
#f.seek(偏移量,选项)
#选项=0,表示将文件指针指向从文件头部到“偏移量”字节处
#选项=1,表示将文件指针指向从文件的当前位置,向后移动“偏移量”字节
#选项=2,表示将文件指针指向从文件的尾部,向前移动“偏移量”字节
#f.flush() 将修改写入到文件中(无需关闭文件)
#f.tell() 获取指针位置
#为了方便,避免忘记close掉这个文件对象,可以用下面这种方式替代
with open(txtfile,"r") as f: #设置文件对象
# str = f.read() # 读取文件,同文件格式中相同,行隔开打印出
# str=f.readline() #读取文件的一行,碰到后面换行符截止
str=f.readlines()#str返回一个数组,包括换行符,类似:['hello,world!\n', 'hello,hhg\n']
print(str)
#按行读取整个文件
#第一种方法
f = open("data.txt","r") #设置文件对象
line = f.readline()
line = line[:-1]
while line: #直到读取完文件
line = f.readline() #读取一行文件,包括换行符
line = line[:-1] #去掉换行符,也可以不去
f.close() #关闭文件
#第二种方法
data = []
for line in open("data.txt","r"): #设置文件对象并读取每一行文件
data.append(line) #将每一行文件加入到list中
#第三种方法
f = open("data.txt","r") #设置文件对象
data = f.readlines() #直接将文件中按行读到list里,效果与方法2一样
f.close() #关闭文件
#将文件读入数组中
import numpy as np
data = np.loadtxt("data.txt") #将文件中数据加载到data数组里
#数组写入文件中
#将数组写入文件
import numpy as np
#第一种方法
np.savetxt("data.txt",data) #将数组中数据写入到data.txt文件
#第二种方法
np.save("data.txt",data) #将数组中数据写入到data.txt文件
#单层列表写入文件
data = ['a','b','c']
#单层列表写入文件
with open("data.txt","w") as f:
f.writelines(data)
#双层列表写入文件
#第一种方法,每一项用空格隔开,一个列表是一行写入文件
data =[ ['a','b','c'],['a','b','c'],['a','b','c']]
with open("data.txt","w") as f: #设置文件对象
for i in data: #对于双层列表中的数据
i = str(i).strip('[').strip(']').replace(',','').replace('\'','')+'\n' #将其中每一个列表规范化成字符串
f.write(i) #写入文件
#第二种方法,直接将每一项都写入文件
data =[ ['a','b','c'],['a','b','c'],['a','b','c']]
with open("data.txt","w") as f: #设置文件对象
for i in data: #对于双层列表中的数据
f.writelines(i) #写入文件
参考:
https://blog.csdn.net/xxn_723911/article/details/78795033
https://www.cnblogs.com/WonderHow/p/4403727.html
https://www.cnblogs.com/youyou0/p/8921719.html