Python:读取一个字符串并用它来重命名文件
Python: read a string and use it to rename the file
我是 python 的新手,我正在尝试使用文件中特定行上的字符串重命名一组文件,并使用它来重命名文件。这样的字符串在每个文件的同一行找到。
举个例子:
- 同一路径下有 10 个文件
- 字符串位于第 14 行,从第 40 个字符开始,长度为 50 个字符
- 然后使用提取的字符串重命名相应的文件
我正在尝试使用这段代码,但我不知道如何让它工作:
for filename in os.listdir(path):
if filename.startswith("out"):
with open(filename) as openfile:
fourteenline = linecache.getline(path, 14)
os.rename(filename, fourteenline.strip())
请注意提供文件的完整路径,以防您尚未准备好在此文件夹中工作(使用 os.path.join()
)。此外,使用 linecache 时,您不需要 open
文件。
import os, linecache
for filename in os.listdir(path):
if not filename.startswith("out"): continue # less deep
file_path = os.path.join(path, filename) # folderpath + filename
fourteenline = linecache.getline(file_path, 14) # maybe 13 for 0-based index?
new_file_name = fourteenline[40:40+50].rstrip() # staring at 40 with length of 50
os.rename(file_path, os.path.join(path, new_file_name))
有用的资源:
- Reading specific lines only (Python)
- Understanding Python's slice notation
- How to rename a file using Python
- python docs - string.strip()
我是 python 的新手,我正在尝试使用文件中特定行上的字符串重命名一组文件,并使用它来重命名文件。这样的字符串在每个文件的同一行找到。
举个例子:
- 同一路径下有 10 个文件
- 字符串位于第 14 行,从第 40 个字符开始,长度为 50 个字符
- 然后使用提取的字符串重命名相应的文件
我正在尝试使用这段代码,但我不知道如何让它工作:
for filename in os.listdir(path):
if filename.startswith("out"):
with open(filename) as openfile:
fourteenline = linecache.getline(path, 14)
os.rename(filename, fourteenline.strip())
请注意提供文件的完整路径,以防您尚未准备好在此文件夹中工作(使用 os.path.join()
)。此外,使用 linecache 时,您不需要 open
文件。
import os, linecache
for filename in os.listdir(path):
if not filename.startswith("out"): continue # less deep
file_path = os.path.join(path, filename) # folderpath + filename
fourteenline = linecache.getline(file_path, 14) # maybe 13 for 0-based index?
new_file_name = fourteenline[40:40+50].rstrip() # staring at 40 with length of 50
os.rename(file_path, os.path.join(path, new_file_name))
有用的资源:
- Reading specific lines only (Python)
- Understanding Python's slice notation
- How to rename a file using Python
- python docs - string.strip()