簡體   English   中英

在文件的新行上寫入數字

[英]Writing numbers in file on new lines

我正在嘗試讀取一個文件f1 ,它包含如下數字:

2
5
19
100
34
285
39
12

我想讀取這些數字,將它們平方並寫入一個新文件,每個文件都在新行上。 這是我的代碼:

with open("Data.txt", 'r') as f1, open("Double.txt", 'w') as f2:
    Lines = f1.readlines()
    for new_line in Lines:
        if new_line.isdigit():
            x = int(new_line)
            x = pow(x, 2)
            on_new_line = str(x) + "\n"
            f2.write(on_new_line)

但在第二個文件中它只寫

144

有人可以幫我弄這個嗎?

文件只返回 144 的原因是因為使用readlines()將行作為字符串返回,其中包括末尾的換行符: \n

我們可以通過整體讀取文件並拆分換行符以將項目放入數組中來解決此問題:

with open('data.txt', 'r') as f1, open('double.txt', 'w') as f2:
    lines = f1.read().split('\n')
    for new_line in lines:
        squared = int(new_line)**2
        f2.write(f"{squared}\n")

這將創建一個數組,其中每個項目都作為一個字符串,所以在第 4 行,我們將它轉換為一個 int 以使其平方。

我們還將每個元素寫入新的文本文件,然后再添加一個換行符。

您可以通過這種方式迭代 throw 文件:

path1 = "Data.txt"
path2 = "Double.txt"

with open(path1, 'r') as f1, open(path2, 'w') as f2:
    for line in f1:
        try:
            f2.write(str(int(line)**2))
        except ValueError:
            pass

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM