導航:首頁 > 版本升級 > 讀取csv文件識別不了換行符

讀取csv文件識別不了換行符

發布時間:2021-04-11 18:32:12

❶ python按行讀取文件,如何去掉換行符"\n

換行符與其他字元並沒有區別

由於換行符總是最後一個字元,所有直接選擇除去最後一個字元的所有字元即可

x='abc
'
x[:-1]

也可以使用字元串的strip方法

但是strip方法除了會去掉換行符還會去掉空格等其他字元

x.strip()

❷ 如何正確讀取csv文件

package xufei;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*
* 文件規則
* Microsoft的格式是最簡單的。以逗號分隔的值要麼是「純粹的」(僅僅包含在括弧之前),
* 要麼是在雙引號之間(這時數據中的雙引號以一對雙引號表示)。
* Ten Thousand,10000, 2710 ,,"10,000","It's ""10 Grand"", baby",10K
* 這一行包含七個欄位(fields):
* Ten Thousand
* 10000
* 2710
* 空欄位
* 10,000
* It's "10 Grand", baby
* 10K
* 每條記錄佔一行
* 以逗號為分隔符
* 逗號前後的空格會被忽略
* 欄位中包含有逗號,該欄位必須用雙引號括起來。如果是全形的沒有問題。
* 欄位中包含有換行符,該欄位必須用雙引號括起來
* 欄位前後包含有空格,該欄位必須用雙引號括起來
* 欄位中的雙引號用兩個雙引號表示
* 欄位中如果有雙引號,該欄位必須用雙引號括起來
* 第一條記錄,可以是欄位名
*/
/**
*
タイトル: xufei.CSVAnalysis.java
*
說明:
*
著作権: Copyright (c) 2006
*
會社名: technodia
* @author 徐飛
* @version 1.0
* createDate Aug 11, 2008
* 修正履歴
* 修正日 修正者修正理由
*/
public class CSVAnalysis {
private InputStreamReader fr = null;
private BufferedReader br = null;
public CSVAnalysis(String f) throws IOException {
fr = new InputStreamReader(new FileInputStream(f));
}
/**
* 解析csv文件 到一個list中
* 每個單元個為一個String類型記錄,每一行為一個list。
* 再將所有的行放到一個總list中
* @return
* @throws IOException
*/
public List> readCSVFile() throws IOException {
br = new BufferedReader(fr);
String rec = null;//一行
String str;//一個單元格
List> listFile = new ArrayList>();
try {
//讀取一行
while ((rec = br.readLine()) != null) {
Pattern pCells = Pattern
.compile("(\"[^\"]*(\"{2})*[^\"]*\")*[^,]*,");
Matcher mCells = pCells.matcher(rec);
List cells = new ArrayList();//每行記錄一個list
//讀取每個單元格
while (mCells.find()) {
str = mCells.group();
str = str.replaceAll(
"(?sm)\"?([^\"]*(\"{2})*[^\"]*)\"?.*,", "$1");
str = str.replaceAll("(?sm)(\"(\"))", "$2");
cells.add(str);
}
listFile.add(cells);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (fr != null) {
fr.close();
}
if (br != null) {
br.close();
}
}
return listFile;
}
public static void main(String[] args) throws Throwable {
CSVAnalysis parser = new CSVAnalysis("c:/test2.csv");
parser.readCSVFile();
}
}

❸ 關於C語言讀CSV文件的問題

csv文件即逗號分隔值文件。

逗號分隔值(Comma-Separated Values,CSV,有時也稱為字元分隔值,因為分隔字元也可以不是逗號),其文件以純文本形式存儲表格數據(數字和文本)。

純文本意味著該文件是一個字元序列,不含必須像二進制數字那樣被解讀的數據。

CSV文件由任意數目的記錄組成,記錄間以某種換行符分隔;每條記錄由欄位組成,欄位間的分隔符是其它字元或字元串,最常見的是逗號或製表符。通常,所有記錄都有完全相同的欄位序列。

要用C語言讀取CSV,首先需要確定文件中定義的字元分隔值,以及每一行各個列的元素格式。

如果所有的元素格式相同,那麼可以每行一個一維數組,所有行組成一個二維數組,逐個元素進行讀取。

如果元素格式不同,可以按照元素類型,構建一個結構體,每行讀到一個結構體變數中,所有行組成一個結構體數組。

下面根據兩種情況,按照分隔符為逗號(,),分別舉一個例子:

文件名設定為in.csv,每行10個元素。

一、所有元素均相同類型,比如int型。

#include<stdio.h>
intmain()
{
FILE*fp;
inta[100][10];//定義一個足夠大的數組來存儲。
intline=0;
intc,i;

fp=fopen("in.csv","r");//以文本方式打開。
if(fp==NULL)return-1;//打開文件失敗。
while(1)
{
i=0;//列標記清零。
while(1)
{
fscanf(fp,"%d",&a[line][i]);//從文件中讀取一個元素。
c=getchar();//讀取下一個字元,可能是分隔符,換行符或文件結尾。
if(c==' '||c==EOF)break;//讀完一行,或者到文件結尾,退出讀取。
i++;
}
line++;
if(c==EOF)break;
}

fclose(fp);//關閉文件。
//以下循環用來列印所有讀到的值。
for(i=0;i<line;i++)
{
for(c=0;c<10;c++)
printf("%d",a[i][c]);
printf(" ");
}
}

二、每行元素不同。

比如共三列,第一列是int型,第二列是字元串,第三列是float型。

如果分隔符不是空白字元,或者字元串元素中可能存在除分隔符外的其它空白字元,在讀取字元串的時候是不能用fscanf函數的。

定義結構體如下

strcutdata
{
inta;
chars[100];//根據實際要求,定義足夠大的字元數組。
floatf;
};

讀取代碼如下:

#include<stdio.h>
intmain()
{
FILE*fp;
strcutdataa[100];//定義一個足夠大的結構體一維數組來存儲。
intline=0;
intc,i;

fp=fopen("in.csv","r");//以文本方式打開。
if(fp==NULL)return-1;//打開文件失敗。
while(1)
{
fscanf(fp,"%d",&a[line].a);//從文件中讀取第一個元素。
c=getchar();//讀取分隔符。
//接下來要讀取字元串,需要逐個字元讀入,直到出現分隔符為止。
i=0;
while(1)
{
a[line].s[i]=getchar();//讀入一個字元。
if(a[line].s[i]==',')//發現分隔符
{
a[line].s[i]='';//賦值字元串結束符。
break;//退出讀取字元串。
}
i++;
}
//由於在讀字元串的時候分隔符已經被讀取,這里不需要讀分隔符,而是直接讀下一個元素。
fscanf(fp,"%f",&a[line].f);//從文件中讀取最後一個元素。
c=getchar();//讀取下一個字元,可能是換行符或文件結尾。
line++;
if(c==EOF)break;//到文件結尾,退出讀取。
}

fclose(fp);//關閉文件。
//以下循環用來列印所有讀到的值。
for(i=0;i<line;i++)
{
printf("%d%s%f ",a[i].a,a[i].s,a[i].f);
}
}

❹ 我在讀取CSV文件時,每讀取一行放到DT裡面,但是遇到了這一行中有""引號的這樣的數據會出錯,怎麼辦

csv文件是可以用記事本打開的,如果只是因為引號導致出錯的話,可以簡單的將所有引導以空代替
不過,CSV中用引號的這列數據一般是代表這列數據是字元串,要是你需要的是數值,而讀出來的字元串,可能會出錯還整個跳出的.順便問下,DT是什麼的簡稱?

❺ 為Excel生成CSV文件,如何在值中包含換行符

源CSV文件:

01,02

"aaa

bbb",ccc

要換行的單元格信息前後加引號,中間直接硬換行。

參考:網頁鏈接

❻ CSV文件中的長文本中有換行符,打開時,一行數據變成了多行,求破!!

在excel 中 本地 文本 導入, 選擇你的文件, 然後在按你的文件的 分隔符設置就可以了

❼ EXCEL 導入 CSV 內容里有回車符

我剛研究完工商銀行的明細單,也是CSV文件,方法是笨了點,不知道對你有沒有用

導入時,第一步,選擇文件類型時,是自動選擇為"逗號分隔"不用管,第二步,選擇分隔符號時,默認的是Tab鍵,不用管它,再復選個"逗號",然後就下一步直到完成就可以了,內容很清楚的

這時的文件的數值都是文本的,需要轉換為數字,方法是:
首先要在你要轉換的單元格或列右邊增加一格或列(不知道為什麼,但不加右邊的數據就被替換掉了),
然後再選擇你要轉換的單元格或者列(只能一次一列啊),在「數據」菜單上,單擊「分列」。然後一直下一步到完成,這時會提示你是否要"替換單元格",點同意就行啦,麻煩的就是轉換前要在右邊加一列,轉換完還得再刪

現在都清楚啦 對了,我用的是of2003

❽ 請教csv文件用什麼標記和識別相當於一個單元格的內容中的「換行」的

要換行時,按下ALT+ENTER

❾ c# csv如果單元格的內容本身有間隔符,換行符 這個怎麼處理

雙引號區分
1,2,"3
4"
像上面就是三列數據

❿ 關於讀取CSV文件中數據中含有回車符號的問題

沒有 讀取一行的函數嗎
判斷\n 或者 byte是 13,10的數據

閱讀全文

與讀取csv文件識別不了換行符相關的資料

熱點內容
poi數據怎麼用 瀏覽:973
linux伺服器搭建php 瀏覽:993
三星s7edge刷win10 瀏覽:98
蘋果查文件有什麼用 瀏覽:157
ai里怎麼導出文件小的pdf 瀏覽:376
紅頭文件如何製成pdf 瀏覽:632
華為桌面整理成文件夾 瀏覽:200
從哪裡下載三菱plc編程軟體 瀏覽:713
普通股賬面價值看哪個數據 瀏覽:773
cad上方怎樣顯示多個文件 瀏覽:331
微信緩沖數據在哪裡 瀏覽:636
文件拷貝到u盤的時候文件丟失了 瀏覽:156
婚紗拍照用哪個app 瀏覽:700
域名的主機名網路名 瀏覽:260
帶官網的有哪些網站 瀏覽:265
江蘇校服通官網app怎麼下不了 瀏覽:929
車床清根怎麼編程 瀏覽:867
word2007表格內容上下居中 瀏覽:818
蘋果手機視頻傳送不了qq文件 瀏覽:738
文件夾加密保護 瀏覽:852

友情鏈接