我正在使用纯Python 3进行工作:
如果我带上扫描仪,(因为我在库存中工作),并且我扫描的所有内容都变成了文本文档,并且我扫描了位置“ 117”,然后又扫描了其他位置的任何设备,(以下几行在文本文档“ 100203”中运行),然后运行该脚本,它将在数据库中的搜索中插入“ 117”,并将每个设备(无论是否已分配给该位置)更改为该位置,(验证那些设备位于位置“ 117”)
我的主要问题是下面的“目标”列表中的第三个目标,其后没有“完成”。
目标:
从文本文档中提取字符串,将其转换为字典。 =(Text_Dictionary)**Done**
将字典中的第一个变量分配给一个单独的变量。 =(第一行)**Done**
所有进行中的var大于字典中的第一个var都应单独传递给函数。 =(Proceeding_Lines)
侧面说明:代码应以一种方式循环,该方式应(.pop)字典/列表中的var,但是我愿意接受其他选择。 (不是强制性的)
我已经拥有的是:
Project.py:
1 import re
2 import os
3 import time
4 import sys
5
6 with open(r"C:\Users\...\text_dictionary.txt") as f:
7 Text_Dictionary = [line.rstrip('\n') for line in
8 open(r"C:\Users\...\text_dictionary.txt")]
9
10 Text_Dict = (Text_Dictionary)
11 First_Line = (Text_Dictionary[0])
12
13 print("The first line is: ", First_Line)
14
15 end = (len(Text_Dictionary) + 1)
16 i = (len(Text_Dictionary))
17
表面上没有什么,但是我要复制另一个“ *.py
”文件代码,以执行希望在每个var中执行的操作Text_Dictionary.txt
。第15至16行是让我搞不清楚我认为可以解决此问题的方法。
在导入的文本文档中,变量的外观非常接近于此(相同长度)(全数字):
Text_Dictionary.txt:
117
23000
53455
23454
34534
...
注意::每次运行代码时,这些值都会更改,这意味着有人每次都会在这些数字行中键入/扫描。
解释的概念:
理想情况下,我希望第一行指向一个方向,其余数字将跟随该方向;但是,每个(示例:'53455'
)需要分别运行,然后下一行才能运行,而(示例:'117'
)将是'53455'
所在的位置。您可以说第一行在整个代码中都是静态的,除非在Text_Dictionary.txt
中进行了更改。 '117'
与每次迭代一起运行。
背景: 这是用于我的办公室的库存管理,我为此没有任何报酬,但这会使我的工作变得轻松很多。另外,我知道基本的Python入门知识,但这有点困扰我。谢谢任何回答!
答案 0 :(得分:0)
我不知道你在问什么,但我会猜测一下。在我这样做之前,您的代码让我很烦:
with open("file.txt") as f:
product_ids = [line.strip() for line in f if not line.isspace()]
在那里。这就是您所需要的。这样也可以防止文件中的空白行和奇怪的不可见空间。我决定将数据保留为字符串,因为它可能表示库存ID,并且将来可能会升级为"53455-b.42454#62dkMlwee"
。
我要冒昧地猜测您要根据顶部的数字运行不同的代码。如果是这样,则可以使用包含函数的字典。您说过要从另一个文件运行代码,所以这是another_file.py
:
__all__ = ["dispatch_whatever"]
dispatch_whatever = {}
def descriptive_name_for_117(product_id):
pass
dispatch_whatever["117"] = descriptive_name_for_117
再返回到main_program.py
,该文件存储在同一目录中:
from another_file import dispatch_whatever
for product_id in product_ids[1:]:
dispatch_whatever[product_ids[0]](product_id)