Skip to main content
 首页 » 编程设计

python之如何打开读写文件并重新创建文件

2025年05月04日11bhlsheji

我要

  • 打开并阅读第一个文件
  • 打开并阅读第二个文件
  • 将第二个文件的值复制到第一个带标题的文件
  • 将新值写入第一个文件

即第一个文件以读写模式打开,第二个文件以读取模式打开。 例如,

第一个文件

     CHINESE    JAPANESE   KOREAN 
CA   0.1        0.1        1.1 
WA   0.2        -0.2       1.3 
OR   -0.1       1.1        0.1 
UT   0.3        1.4        -0.9 

第二个文件(无标题)

1.1 
1.3 
-0.1 
1.3 

重新创建第一个文件

     CHINESE    JAPANESE   KOREAN    VIETNAMESE   TOTAL 
CA   0.1        0.1        1.1       1.1          2.4 
WA   0.2        -0.2       1.3       1.3          2.6 
OR   -0.1       1.1        0.1      -0.1          1.0 
UT   0.3        1.4        -0.9      1.3          2.1 

这里,第二个文件包含有关 VIETNAMESE 列的值。

因此,第一件事是将标题 1) VIETNAMESE 和 2) TOTAL 写入第一个文件的标题。

然后,将 2nd_file 中的值写入 1st_column 对应的 VIETNAMESE 列。

最后,计算1st_column的值,并将其(如TOTAL)写入1st_column。

我尝试用 r+ 模式打开第一个文件,但效果不佳。仅供引用,真正的 1st_files 大约有 1 亿行和 20 列。

怎么做?

请您参考如下方法:

虽然我同意 iCodez 并且你不应该使用 txt 文件(可能是 SQL 甚至 json)......我会给你一个替代方案。

file1 = open("example.txt", "r") 
alldatainfile1 = file1.read() 
file1.close() 
 
file2 = open("example.txt", "r") 
alldatainfile2 = file2.read() 
file2.close() 

既然您正在使用变量而不是文件,您可以...

file1 = open("example.txt", "w") 
file1.write(alldatainfile2) 
file1.close() 

请注意,我使用“w”写入文件(这将删除所有信息然后保存新信息),但是如果您只想向文件添加信息而不是删除所有信息,您应该使用“a”附加数据。

最后我建议 3 个提示:

  • 在尝试之前备份您的文件,删除重要信息的机会很高。
  • 使用 For line in yourfile 代码检查信息是否已经存在,如果是这样就不要复制它,但应该使用 json 正确完成。
  • 如果那是 json 会很容易,因为不是我会尝试给你一个代码来计算一行的总数。

您可以执行以下代码:

total = 0 
for line in alldatainfile1: 
  linesplit.split("   ") #3 whitespaces, since you got it that way 
  total = total + line[1] 
print("total of column1: " + str(total))