Python由文件名批量获取姓名和考号 [file[:-4] for file in files],生成xsl表格

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python由文件名批量获取姓名和考号 [file[:-4] for file in files],生成xsl表格相关的知识,希望对你有一定的参考价值。

请问代码中的 [file[:-4] for file in files]这个语句是啥意思?还有name[-2:],name[:2-]分表代表什么意思?没搞懂#Example 由文件名批量获取姓名和考号,代码如下:import osfilenames = [] #所有文件名的存放列表for a,b,files in os.walk('test'): #获取当前目录下test目录中的所有文件 if files: filenames.append([file[:-4] for file in files]) #扩展名为三个字母fname = 'testexammmmmn' #指定生成电子表格的文件名i = 0for files in filenames: f = open(fname+str(i)+'.xls','w') #打开指定的文件 for name in files: f.write(name[:-2]+'\t'+name[-2:]+'\n') #写入姓名和考号 f.close() #关闭文件 i += 1print("成功生成!")

[file[:-4] for file in files]是将文件名除扩展名之外的部分放到列表filenames最后。
name[-2:],name[:2-]是因为给的例子的学号有两位,name[-2:]是将最后两位作为学号写入,name[:2-]是将除去学号之外的部分作为姓名写入。
参考技术A 1、在movies文件夹下面的所有文件前面都加上[可可可可]
#coding:utf-8
import os
movie_name = os.listdir('./movies')
for temp in movie_name:
new_name = '[可可可可]' + temp
os.rename('./movies/'+temp,'movies/'+new_name)2,把文件名前面乱七八糟的东西都去掉
复制代码
#coding:utf-8
import os
movie_name = os.listdir('./movies')
for temp in movie_name:
num = temp.rfind(']')#找到最右边]的下标
# new_name = '[可可可可]' + temp
new_name = temp[num+1:]
os.rename('./movies/'+temp,'movies/'+new_name)复制代码
主要还是涉及对字符串的操作
3、问题:
为什么打印
print(movie_name)是一堆乱码

f\xaf\xe5\x8f\xaf]\xe7\x94\xb5\xe5\xbd\xb11\xe5\x89\xaf\xe6\x9c\xac 2.txt'<br>
解决:
显示乱码是因为是中文在python 2 中显示有问题,如果要在python 2 中显示出来的话,可以用for temp in movie_name:
print(movie_name)
另外,在python 3 里可以正常打印追问

不好意思,请问[file[:-4] for file in files]这个语句是啥意思?没看懂你写那么多代码是啥意思?

参考技术B 程序先是遍历test目录下的每个文件,如“李文34.txt”、“周兰巧12.txt”。
file[:-4]的意思是取以上文件名中从右边数第4个字符的左边所有字符,也就是“.”之前的所有字符,即“李文34”、“周兰巧12”。
参考技术C 代码有误吧追问

这段代码是《21天学通Python》书中的一个实例,也运行的有结果;就是不明白这几句话啥意思?

Python 批量重命名

#coding=utf-8

import os

#1.获取要重命名的文件夹的名字

folder_name = input("输入文件夹名:")

#2.获取制定的文件夹中的名字

file_names = os.listdir(folder_name)

#3.重命名

for name in file_name:

     print name

     old_file_name = folder name+"/"+name

     new_file_name = folder_name+"/"+"[京东出品]"+name

     os.rename(name,"[京东出品]-"+name)

 

以上是关于Python由文件名批量获取姓名和考号 [file[:-4] for file in files],生成xsl表格的主要内容,如果未能解决你的问题,请参考以下文章

Python 批量重命名

用Python批量重命名文件

Python 批量修改文件名

如何用python批量修改文件名(前缀)

python之批量文件重命名

用python批量修改文件名