Python: 如何查找并替换为输入?
Python: How to find and replace with an input?
很长一段时间以来,我一直在尝试对我的代码中的这个查找和替换部分进行编程。尝试两种主要方法来完成这项工作。让我给你一些我想要实现的目标的背景。
Objective:代码将读取 Excel 电子表格中的 sheet1。在这个 Excel 电子表格中有几行文件夹路径,如下所示。我有重复的文件夹,我想用另一个名字更改。可以键入并替换路径中的那个词的一个。这将允许我重复使用具有新名称的相同文件夹结构 Folder1 + Folder2
下面是我的代码
import os
import pandas as pd
from openpyxl import load_workbook
from pandas.core.indexes.base import Index
import fileinput
os. chdir("C:\Users\NAME\desktop")
workbook = pd.ExcelFile('Excel.xlsx')
sheet = workbook.parse('Sheet1')
for col in sheet.values:
for row in range(len('Folder1')):
Folder1 = input("Enter Folder1 name")
try:
os.linesep.replace
except OSError:
print ( % Folder1 "addition failed")
else:
print (% Folder1 "addition success")
for col in sheet.values:
for row in range(len('Folder2')):
Folder2 = input("Enter Folder2 name")
try:
os.linesep.replace
except OSError:
print (% Folder2 "addition failed")
else:
print (%Folder2 "addition success")
for col in sheet.values:
for row in range(len(col)):
dir_name = str (col[row])
try:
os.makedirs(dir_name, exist_ok=True)
except OSError:
print ("Creation of the directory %s failed" % dir_name)
else:
print ("Successfully created the directory %s " % dir_name)
运行 这段代码的结果似乎导致我的终端多次要求输入 Folder1 + Folder2,而在创建目录时实际上没有进行任何更改。维护其 Folder1 和 Folder2 名称。
您在 for
循环中请求用户 input
(这就是多次要求您输入文件夹名称的原因)。
另外,如果您使用 pandas
,您可以这样做:
import os
import pandas as pd
df = pd.read_excel("C:/Users/Username/Desktop/Excel.xlsx", header=None)
folder1 = input("Enter Folder1 name: ")
folder2 = input("Enter Folder2 name: ")
output = df[0].str.replace("Folder1", folder1).str.replace("Folder2", folder2)
for folder in output.tolist():
os.makedirs(folder, exist_ok=True)
很长一段时间以来,我一直在尝试对我的代码中的这个查找和替换部分进行编程。尝试两种主要方法来完成这项工作。让我给你一些我想要实现的目标的背景。
Objective:代码将读取 Excel 电子表格中的 sheet1。在这个 Excel 电子表格中有几行文件夹路径,如下所示。我有重复的文件夹,我想用另一个名字更改。可以键入并替换路径中的那个词的一个。这将允许我重复使用具有新名称的相同文件夹结构 Folder1 + Folder2
下面是我的代码
import os
import pandas as pd
from openpyxl import load_workbook
from pandas.core.indexes.base import Index
import fileinput
os. chdir("C:\Users\NAME\desktop")
workbook = pd.ExcelFile('Excel.xlsx')
sheet = workbook.parse('Sheet1')
for col in sheet.values:
for row in range(len('Folder1')):
Folder1 = input("Enter Folder1 name")
try:
os.linesep.replace
except OSError:
print ( % Folder1 "addition failed")
else:
print (% Folder1 "addition success")
for col in sheet.values:
for row in range(len('Folder2')):
Folder2 = input("Enter Folder2 name")
try:
os.linesep.replace
except OSError:
print (% Folder2 "addition failed")
else:
print (%Folder2 "addition success")
for col in sheet.values:
for row in range(len(col)):
dir_name = str (col[row])
try:
os.makedirs(dir_name, exist_ok=True)
except OSError:
print ("Creation of the directory %s failed" % dir_name)
else:
print ("Successfully created the directory %s " % dir_name)
运行 这段代码的结果似乎导致我的终端多次要求输入 Folder1 + Folder2,而在创建目录时实际上没有进行任何更改。维护其 Folder1 和 Folder2 名称。
您在 for
循环中请求用户 input
(这就是多次要求您输入文件夹名称的原因)。
另外,如果您使用 pandas
,您可以这样做:
import os
import pandas as pd
df = pd.read_excel("C:/Users/Username/Desktop/Excel.xlsx", header=None)
folder1 = input("Enter Folder1 name: ")
folder2 = input("Enter Folder2 name: ")
output = df[0].str.replace("Folder1", folder1).str.replace("Folder2", folder2)
for folder in output.tolist():
os.makedirs(folder, exist_ok=True)