0
私は従業員のために歓迎文書を作成する "手作業"の手伝いを手伝ってくれる仕事をしています。Pythonを使用してdocxのテキストを置き換えます
私は何をしようとしていることである: 1)CSVからのセルの内容は、(ユーザー名、ファーストネーム、パスワード) 2ファイル抽出)セルの内容を取り、文字列を置換するには、[姓]、[ユーザー名]と[パスワード]をDOCXファイルに入力します。
""" Dependencies """
import csv
import numpy as np
import re
import shutil
import docx
#import fileinput
""" Open CSV and add usernames to list """
with open('UploadUsers.csv', 'rU') as csvfile:
readCSV = np.loadtxt(csvfile, delimiter=',', skiprows=1, dtype = 'str')
first_names = []
usernames = []
passwords = []
for row in readCSV:
username = row[1]
first_name = row[2]
password = row[5]
usernames.append(username)
first_names.append(first_name)
passwords.append(password)
for username in usernames:
doc = "Free_Tracking_Manager_US.docx"
doc_copy = "Free_Tracking_Manager_US.docx."+username+".docx"
""" Make file copies """
shutil.copy(doc, doc_copy)
""" Make changes to first name, username and password """
document = docx.Document(doc_copy)
for paragraph in document.paragraphs:
if '[FirstName]' in paragraph.text:
print(first_name)
if '[Username]' in paragraph.text:
print(username)
if '[Password]' in paragraph.text:
print(password)
""" Save document """
document.save(doc_copy)
スクリプトがエラーなしで実行され、それが文書のコピーを作成しますが、文字列を置き換えるものではありません:
これはコードです。わからない問題がどこにあるか...
UPDATE:
がAbassが提案された変更を行いました。私が交換さ:for paragraph in document.paragraphs:
if '[FirstName]' in paragraph.text:
print(first_name)
if '[Username]' in paragraph.text:
print(username)
if '[Password]' in paragraph.text:
print(password)
で:
の操作を行います。
for paragraph in document.paragraphs:
if '[FirstName]' in paragraph.text:
print(first_name)
paragraph.text = paragraph.text.replace('[FirstName]',first_name)
if '[Username]' in paragraph.text:
print(username)
paragraph.text = paragraph.text.replace('[Username]',username)
if '[Password]' in paragraph.text:
print(password)
paragraph.text = paragraph.text.replace('[Password]',username)
はまだ動作しません...
ありがとうございます、まだ動作していません...ファイルをコピーしますが、docxのコンテンツは変更しません。 –
あなたの質問をあなたの変更内容で更新してください。 – Abbas
完了!それがうまくいくためには他に何が必要なのか教えてください! –