with open('90_out.csv', 'w') as f:
data = open('A:/pycharm/study0722/data/90.txt', 'r')
f.write('year, month, day, tmax, tavg, tmin, rainfall')
f.write('\n')
for line in data:
tokens = line.split()
year = int(tokens[0])
month = int(tokens[1])
day = int(tokens[2])
tmax = float(tokens[3])
tavg = float(tokens[4])
tmin = float(tokens[5])
rainfall = float(tokens[10])
f.write("{:d}, {:d}, {:d}, {:.1f}, {:.1f}, {:.1f}, {:.1f}".format(year, month, day, tmax, tavg, tmin, rainfall))
f.write('\n')
我用以上代码修改并保存了一个txt文件。应该以相同的方式处理大约50个文件。但我不知道如何打开多个文件并互相保存。
*我用过pycharm
答案 0 :(得分:0)
您应列出所有文件,并说file_list
并使用以下代码
for single_file in file_list:
with open(single_file, 'w') as f:
do_something()
您应该搜索google,该问题已被多次回答
答案 1 :(得分:0)
首先:如果要循环播放多个文件,则需要它们的列表。如果您不想手动创建它,则可以读取一个文件夹。您可能要处理某个文件夹中的所有* .txt文件:
import glob
source_folder = '/wherever/files/may/roam/'
src_list = glob.glob(source_folder + '*.txt')
第二:如果要在每次迭代中处理两个文件,则可以在一个with
块中打开它们:
for src in src_list:
a = src.rfind('\\')
b = src.rfind('.')
tgt = src[a+1: b] + '.csv'
with open(src, 'r') as sf, open(tgt, 'w') as tf:
_process_anything_here_
第三:如果只想用逗号分隔空间分隔文件的副本,则可以使用熊猫:
import pandas as pd
df = pd.read_table(sf, sep='\s+')
df.to_csv(tf)
如果问题是源文件没有标题,则可以在编写目标文件时将其添加:
df.to_csv(tf, header=['year, month, day, tmax, tavg, tmin, rainfall'])