为什么我创建的文件是空的?

2024-10-17 08:21:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我无法将减去头的数据存储到新文件中。我对Python的理解还不足以调试。你知道吗

最后,我希望从每个文件中提取数据并存储到一个主csv文件中,而不是单独打开每个文件,同时将所有内容复制并粘贴到主csv文件中。你知道吗

我的代码如下:

       import csv, os

# os.makedirs() command will create a folder titled in green or in apostrophies
os.makedirs('HeaderRemoved', exist_ok=True)

# Loop through every file in the current working directory.
for csvFilename in os.listdir('directory'):
    if not csvFilename.endswith('.csv'):
        continue #skips non-csv files
    print('Removing header from ' + csvFilename + '...')

    ### Read the CSV file in (skipping first Row)###

csvRows = []
csvFileObj = open(csvFilename)
readerObj = csv.reader(csvFileObj)
for row in readerObj:
    if readerObj.line_num == 1:
        continue # skips first row
    csvRows.append(row)
print (csvRows) #----------->Check to see if it has anything stored in array
csvFileObj.close()

    #Todo: Write out the CSV file
csvFileObj = open(os.path.join('HeaderRemoved', 'directory/mainfile.csv'), 'w',
                  newline='')
csvWriter = csv.writer(csvFileObj)
for row in csvRows:
    csvWriter.writerow(row)
csvFileObj.close()

正在“扫描”或“读取”的csv文件有文本和数字。我不知道这是否会阻止脚本正确地“读取”并将数据存储到csvRow数组中。你知道吗


Tags: 文件csvthe数据inforifos
1条回答
网友
1楼 · 发布于 2024-10-17 08:21:47

问题来自于在循环文件名时重用同一个变量。参见文档listdir,它返回一个文件名列表。那么你的newfile就不再真正指向文件了,但是 从目录中删除一个字符串文件名。 https://docs.python.org/3/library/os.html#os.listdir

with open(scancsvFile, 'w') as newfile:
    array = []
    #for row in scancsvFile
    for newfile in os.listdir('directory'): # <   you're reassigning the variable newfile here
        if newfile.line_num == 1:
            continue
        array.append(lines)
newfile.close()

相关问题 更多 >