1. python文件名获取文件路径
使用os.path.abspath()函数来获取文件绝对路径
文件目录结构如下:
os.path.abspath(path)返回path规范化的绝对路径(但这个路径不一定是真实的路径),如果path仅是一个文件名,使用该函数后返回的路径是当前工作目录路径连接改文件名后所组成的新的路径名。
>>> import os.path
>>> os.path.abspath("a.py")
'C:\Users\Administrator\a.py'
os.path.split(path)将path分割成目录和文件名二元组返回
>>> os.path.split("C:\Users\Administrator\a.py")
('C:\Users\Administrator', 'a.py')
os.path.dirname(path)返回path的目录,其实就是os.path.split(path)的第一个元素
>>> os.path.dirname("C:\Users\Administrator\a.py")
'C:\Users\Administrator'
os.path.basename(path)返回path最后的文件名。如果path以/或结尾,就会返回空值。即os.path.split(path)的第二个元素。
>>> os.path.basename("C:\Users\Administrator\a.py")
'a.py'
os.path.commonprefix(list)返回list中所有path共有的最长的路径,从左向右,相同字符。
os.path.exists(path)如果path存在,返回True;如果path不存在,返回False。
os.path.isabs(path)如果path是绝对路径,返回True。
os.path.normpath(path)规范path字符串形式(规范文件路径)
os.path.isfile(path)判断路径是否为文件,是返回True,否则返回False
os.path.isdir(path)如果path是一个存在的目录,返回True,否则返货False。
os.path.islink(path)是否是链接;但如果系统不支持链接,则返回False。
2. 怎么用Python来读取文件后缀和文件名
importos
path='c:'
foriinos.listdir(path):
ifos.path.isdir(path+'\'+i):
print('{0:<30}文件夹'.format(i))
elifos.path.isfile(path+'\'+i):
f=i.split('.')
iflen(f)>=2:
print('{0:<30}文件,文件名是:{1}扩展名是:{2}'.format(i,f[0],f[1]))
else:
print('{0:<30}文件'.format(i))
3. python: 从一个文件夹中提取含有特定文件名的文件并放到新文件夹中
importos,shutil
forfilenameinopen(result.out):
shutil.(os.path.join(r'文件夹A',filename+'.mol'),r'文件夹B')
4. python怎么读取文件名的内容
python读取文件内容的方法:
一.最方便的方法是一次性读取文件中的所有内容并放置到一个大字符串中:
all_the_text = open('thefile.txt').read( )
# 文本文件中的所有文本
all_the_data = open('abinfile','rb').read( )
# 二进制文件中的所有数据
为了安全起见,最好还是给打开的文件对象指定一个名字,这样在完成操作之后可以迅速关闭文件,防止一些无用的文件对象占用内存。举个例子,对文本文件读取:
file_object = open('thefile.txt')
try:
all_the_text = file_object.read( )
finally:
file_object.close( )
不一定要在这里用Try/finally语句,但是用了效果更好,因为它可以保证文件对象被关闭,即使在读取中发生了严重错误。
二.最简单、最快,也最具Python风格的方法是逐行读取文本文件内容,并将读取的数据放置到一个字符串行表中:
list_of_all_the_lines = file_object.readlines( )
这样读出的每行文本末尾都带有"\n"符号;如果你不想这样,还有另一个替代的办法,比如:
list_of_all_the_lines = file_object.read( ).splitlines( )
list_of_all_the_lines = file_object.read( ).split('\n')
list_of_all_the_lines = [L.rstrip('\n') for L in file_object]
最简单最快的逐行处理文本文件的方法是,用一个简单的for循环语句:
for line in file_object:
process line
这种方法同样会在每行末尾留下"\n"符号;可以在for循环的主体部分加一句:
lineline = line.rstrip('\n')
或者,你想去除每行的末尾的空白符(不只是'\n'\),常见的办法是:
lineline = line.rstrip( )