day 12 文件操作

1.文件定位读写  f.seek(2,0)   

##### f.seek(2,0)   

In [4]: f = open("test.py","r")

In [5]: f.seek(2,0)   
Out[5]: 2
 
#微调  2  两个字符   
#大方向  0表示从开头读,1表示当前位置, 2表示文件末尾

In [6]: f.readline()
Out[6]: 'port random\n'

  In [11]: f.seek(0,0)    #从头开始读
  Out[11]: 0

 

 

 2.文件的当前位置  f.tell()

####  f.tell()

In [9]: f.read()
Out[9]: 'import random\ndfnsaf   \ndsafdsa   \nfdsaf  \n\n'


In [10]: f.tell()
Out[10]: 44

In [11]: f.seek(0,0)
Out[11]: 0

In [12]: f.tell()
Out[12]: 0

In [13]: f.read(1)
Out[13]: 'i'

In [14]: f.tell()
Out[14]: 1

 

 3. 文件,文件夹的常见操作 os

In [15]:  import os
In [17]: os.rename("test.py","let.py")       #重命名

 In [19]: os.remove("test1.py")  #删除文件
  
In [21]: os.mkdir("test")   #创建目录
In [23]: os.rmdir("test")    #删除目录


 In [26]: os.getcwd()    #获取当前绝对路径
Out[26]: '/home/python/pythonS6/python基础06'


In [27]: f = open("../xxx,txt","w")      #在上级目录创建文件
In [29]: f.close()
In [30]: ls ../
python基础01/  python基础03/  python基础05/  xxx,txt


In [31]: os.listdir("./")    #获取当前目录下的所有文件
Out[31]: 
['07-read.py',
 '04-交换两个值.py',
 'aaa附件.py',
 'aaa.py',
 'love.py',
 '02-匿名函数拓展.py',
 'aa[cp]a',
 '10-大文件读取.py',
 '01-匿名函数.py',
 '09-复制文件名.py',
 'aaa[附件]',
 '05-num+=.py',
 'bbb',
 'aaa[cp].py',
 '08-复制文件.py',
 'let.py',
 'file_name + "[附件]"',
 '03-匿名函数.py',
 '06-write.py',
 'aaa[大文件].py']

 

 

 4.小应用:批量重命名文件

  1)版本1:创建文件

python@ubuntu:~/pythonS6/python基础06$ mkdir test
python@ubuntu:~/pythonS6/python基础06$ cd test/
python@ubuntu:~/pythonS6/python基础06/test$ touch 权利的游戏-{0..5}.avi

python@ubuntu:~/pythonS6/python基础06/test$ ls
权利的游戏-0.avi  权利的游戏-2.avi  权利的游戏-4.avi
权利的游戏-1.avi  权利的游戏-3.avi  权利的游戏-5.avi
 import os
 #1.获取用户要修改的目录下的文件
 dir_name = input("请输入要修改的目录:")
 
 #2.找到文件名字
 list_dir = os.listdir(dir_name)
 
 for name in list_dir:
     print(name)
 
 
 #3.修改文件名字
####  运行结果

python@ubuntu:~/pythonS6/python基础06$ python3 11-文件批量重命名.py
请输入要修改的目录:test
权利的游戏-0.avi
权利的游戏-2.avi
权利的游戏-1.avi
权利的游戏-3.avi
权利的游戏-5.avi
权利的游戏-4.avi

 

  

  2)版本2:

 import os
 #1.获取用户要修改的目录下的文件
 dir_name = input("请输入要修改的目录:")
 
 #2.找到文件名字
 list_dir = os.listdir(dir_name)
 
 for name in list_dir:
     print(name)
     os.rename(name,"[jd]-"+name)
 
 #3.修改文件名字

 

 

### 报错 没有文件  ,因为文件和程序没在同一目录
Traceback (most recent call last):
  File "11-文件批量重命名.py", line 10, in <module>
    os.rename(name,"[jd]-"+name)
FileNotFoundError: [Errno 2] No such file or directory: '权利的游戏-0.avi' -> '[jd]-权利的游戏-0.avi'

 

 

  3)版本3:修改默认目录

import os
#1.获取用户要修改的目录下的文件
dir_name = input("请输入要修改的目录:")

#2.找到文件名字
list_dir = os.listdir(dir_name)

os.chdir(dir_name)

#3.修改文件名字
for name in list_dir:
    print(name)
    os.rename(name,"[jd]-"+name)
└── test
    ├── [jd]-权利的游戏-0.avi
    ├── [jd]-权利的游戏-1.avi
    ├── [jd]-权利的游戏-2.avi
    ├── [jd]-权利的游戏-3.avi
    ├── [jd]-权利的游戏-4.avi
    └── [jd]-权利的游戏-5.avi

  

  4)版本4:

 import os
 #1.获取用户要修改的目录下的文件
 dir_name = input("请输入要修改的目录:")
 
 #2.找到文件名字
 list_dir = os.listdir(dir_name)
 
 #os.chdir(dir_name)
 
 #3.修改文件名字
 for name in list_dir:
     print(name)
 
     old_file_name = dir_name + "/" +name
     new_file_name = dir_name + "/" + "al-" +name
     os.rename(old_file_name,new_file_name)

   

└── test
    ├── al-[jd]-权利的游戏-0.avi
    ├── al-[jd]-权利的游戏-1.avi
    ├── al-[jd]-权利的游戏-2.avi
    ├── al-[jd]-权利的游戏-3.avi
    ├── al-[jd]-权利的游戏-4.avi
    └── al-[jd]-权利的游戏-5.avi

 

 

5。批量删除文件名前多余的东西

 

posted @ 2017-11-22 22:38  venicid  阅读(159)  评论(0编辑  收藏  举报