python - 没有文本附加到文本文件
问题描述
该脚本似乎运行没有错误,但在文本文件中看不到任何输出(尽管我可以看到该文件已在修改日期之前进行了编辑)。我对 python 很陌生,所以对任何明显的错误表示歉意。谢谢你的帮助。
我最初使用 xlrd 但由于可能与 .xlsm 文件不兼容而改为 openpyxl(这是真的吗)
def list_files(directory, extension):
from os import listdir
return (f for f in listdir(directory) if f.endswith('.' + extension))
def scrape(xlpath, name, crit, row, column):
from openpyxl import load_workbook
directory = os.getcwd()
#discover values
loc = xlpath
wb = load_workbook(loc)
sheet = wb.get_sheet_by_name(name)
place = row+","+column
data = sheet.cell(place).value
#transfer to text file
print("\n ", crit, " : ", data.cells.value, file=open("info.txt", "a"))
def presenting(pth):
scrape(pth, 'generic val1', 'Sheet1', '7', '1')
scrape(pth, 'generic val2', 'Sheet1', '0', '1')
scrape(pth, 'generic val3', 'Sheet1', '8', '1')
scrape(pth, 'generic val4', 'Sheet1', '29', '4')
scrape(pth, 'generic val5', 'Sheet2', '21', '6')
scrape(pth, 'generic val6', 'Sheet2', '22', '6')
scrape(pth, 'generic val7', 'Sheet2', '56', '19')
scrape(pth, 'generic val8', 'Sheet2', '56', '20')
scrape(pth, 'generic val9', 'Sheet2', '56', '21')
scrape(pth, 'generic val10', 'Sheet2', '36', '14')
scrape(pth, 'generic val11', 'Sheet2', '37', '14')
def process():
import os
directory = os.getcwd()
files = list_files(directory, "xlsm")
for f in files:
pth = str(f)
print("\n", pth, file=open("info.txt", "a"))
presenting(pth)
import os
directory = os.getcwd()
open('info.txt', 'w').close()
process()
预期结果是从本地文件夹(工作目录)中的所有 excel 文件中检索到的通用变量及其各自值的列表。实际结果只是本地文件夹中第一个(3 个)excel 文件的名称。
解决方案
因为您不写入文件。你只打开文件,仅此而已open
。你永远不会写或关闭它。
和一个提示:只需import os
在文件的开头写。所以你不需要多次导入它。
推荐阅读
- r - 使用 dplyr::filter_if 仅将 EQUAL 值过滤到列中
- reactjs - 为什么我去掉多余的代码后,名字列表没有显示?
- jquery - 如何在 jQuery 中删除或添加元素
- html - CSS过滤器模糊和对比度的粘性效果
- flutter - ListTile:将文本包装在尾随小部件中
- node.js - `npm install -g nodemon` 不安装 nodemon
- windows - 它可以创建一个自定义批处理,用于将自定义扩展文件移动到新创建的文件夹
- python - 如何在单个命令中将角色与频道相关联?如何获取角色ID?
- javascript - 组中的新图层
- c# - 使用 tcpclient 和服务器进行 C# 文件传输