【问题标题】:Python: How to find and replace with an input?Python:如何查找和替换输入?
【发布时间】:2021-12-06 11:47:34
【问题描述】:

一段时间以来,我一直在尝试编写我的代码的这个查找和替换部分。尝试两种主要方法来完成这项工作。让我给你一些我想要实现的背景。

目标:代码将读取 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 名称。

【问题讨论】:

    标签: python excel pandas replace directory


    【解决方案1】:

    您在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)
    

    【讨论】:

      猜你喜欢
      • 2020-06-16
      • 1970-01-01
      • 2014-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多