这就是我正在做的事情。我从文件夹中获取文本,修改该文本,然后将其写入具有修改过的文件名的另一个文件夹。我试图将文件名建立为变量。不幸的是,这种情况发生了:
import os
import glob
path = r'C://Users/Alexander/Desktop/test/*.txt'
for file in glob.glob(path):
name = file.split(r'/')[5]
name2 = name.split(".")[0]
print(name2)
输出:test \ indillama_Luisa_testfile
文件名是' indillama_Luisa_testfile.txt'它保存在我桌面上名为' test'的文件夹中。
Python包括' test \'在文件名中。如果我尝试在[6]处拆分名称,则表示索引超出范围。我正在使用正则表达式,我假设它正在阅读' / *'作为单个单元而不是文件目录中的斜杠。
如何获取文件名?
答案 0 :(得分:1)
import os
import glob
path = r'C://Users/Alexander/Desktop/test/*.txt'
for file in glob.glob(path):
name = os.path.basename(file)
(path, ext) = os.path.splitext(file)
print(ext)
os.path.basename()
将提取路径的文件名部分。 os.path.splitext()
移回包含路径和分离扩展的元组。既然你的例子似乎是打印的,那就是我在建议的答案中所做的。
为了便于携带,使用内置的路径操作例程通常更安全,而不是自己尝试。
答案 1 :(得分:1)
您可以按操作系统路径分隔符进行拆分:
import os
import glob
path = r'C://Users/Alexander/Desktop/test/*.txt'
for file in glob.glob(path):
name = file.split(os.path.sep)[-1]
name2 = name.split(".")[0]
print(name2)
答案 2 :(得分:0)
您可以使用os.listdir(path)
列出目录中的所有文件。
然后迭代列表以获取每个文件的文件名。
for file in os.listdir(path):
name2 = file .split(".")[0]
print(name2)