【问题标题】:Python & path parsePython & 路径解析
【发布时间】:2018-12-10 12:07:35
【问题描述】:

我需要你的帮助来使用 python 解决这个问题。 我有一个名为good_files.txt 文件,其中每一行都是通向新文件的路径。 在每个文件中,我必须将两列数据合并在一起以进行曲线拟合。 我的问题是我该怎么做?对我来说最大的问题是了解如何构建循环以读取文件good_file.txt 的每一行,打开该路径的文件并获取两列数据将它们放入一个新文件中。抱歉,我现在是编码方面的菜鸟。谢谢你们的帮助,伙计们

【问题讨论】:

  • 举例说明 good_files.txt 文件的外观。用你刚才说的很难理解文件的结构。
  • good_files.txt 的结构是这样的:secondolotto_1/Station_1__11/Station_1__11_Summary/Chip_004/S_curve/Ch_3_offset_0_Chip_004.txt secondolotto_1/Station_1__11/Station_1__11_Summary/Chip_004/S_curve/Ch_4_ 等。跨度>
  • 例如文件 secondolotto_1/Station_1__11/Station_1__11_Summary/Chip_004/S_curve/Ch_3_offset_0_Chip_004.txt 看起来像 $$\begin{matrix} 210 & 0 & 0 \\ 215 & 0 & 0 \\ 219 & 3 & 0 \\ 222 & 326 & 326 \\ 224 & 966 & 966 \\ 226 & 1000 & 1001 \\ \end{matrix}$$ 我将每个文件的第一列和第二列合并到一个文件中然后我会用它来做适合

标签: python file parsing


【解决方案1】:

由于您在 cmets 中的文件名太大而无法写入,因此我举一个小例子。

假设您有一个源文件 (mysource.txt),其中包含类似这样的其他文件的地址。

def.txt
ijk.txt

每个地址都是一个文本文件,数据如下:

1234 5678
2345 6789

您希望将所有数据存储到result.txt 文件中。

看看我的示例代码。

def readFromFile (fileName):
    sourceFile = open (fileName, 'r')
    text = []
    for address in sourceFile.readlines ():
        if '\n' in address: text.append (address [:-1])
        else: text.append (address)
    return text
    sourceFile.close ()

def writeToFile (text):
    resultFile = open ('result.txt', 'w')
    for data in text:
        resultFile.write (data + '\n')
    resultFile.close ()

addresses = read ('mysource.txt')
for address in addresses:
    text = read (address)
    write (text)

readFromFile () 函数采用单个文件地址并将文件中的所有行输出到单个列表中,即addresses

现在对于每个地址,for 循环实现相同的readFromFile () 函数来遍历内部文件数据,并在result.txt 中写入(使用writeToFile () 函数)。

【讨论】:

  • 为什么函数不是正交的?使用与内置 write 方法相同的名称在技术上不是问题,但不是最佳实践。
  • 我只是想让代码易于理解。现在命名是固定的。谢谢@tripleee
猜你喜欢
  • 2020-07-06
  • 2014-01-15
  • 2019-04-09
  • 2015-12-26
  • 1970-01-01
  • 1970-01-01
  • 2011-04-19
  • 1970-01-01
  • 2019-03-12
相关资源
最近更新 更多